Android Wear数据层API仅工作一次

问题描述 投票:0回答:1

我使用数据层API将命令从可穿戴设备发送到掌上电脑。直到今天下午,这一切都很好。我没有对代码进行任何更改,但突然只有手持设备App重新启动后,第一个命令才起作用。以下所有命令均在可穿戴设备上发送,但在手持设备上未收到。我经历了所有带有断点的问题,做了两次相同的事情,但这只是第一次。

可穿戴代码:

public void run() {
            Task<List<Node>> nodeListTask = Wearable.getNodeClient(getApplicationContext()).getConnectedNodes();
            try {
                List<Node> nodes = Tasks.await(nodeListTask);
                for (Node node : nodes) {

                    Task<Integer> sendMessageTask = Wearable.getMessageClient(MainActivity.this).sendMessage(node.getId(), "/wear_control", TextUtils.join(";", slices).getBytes());
                    Integer result = Tasks.await(sendMessageTask);
                }
            } catch (Exception exception) {
                exception.printStackTrace();
                //TODO aaaaaaaaaaaaaaaaaa
            }
            slices.clear();
        }

来自掌上电脑的代码(在前台服务中:)

@Override
    public void onMessageReceived(MessageEvent messageEvent) {
        if (messageEvent.getPath().equals("/wear_control")) {
            ProcessMessage.evaluate(new String(messageEvent.getData()), this);
        }
        else {
            super.onMessageReceived(messageEvent);
        }
    }

但是正如我所说,我在代码上没有做任何更改,但是它不再起作用。

提前感谢。

我使用数据层API将命令从可穿戴设备发送到掌上电脑。直到今天下午,这一切都很好。我没有对代码进行任何更改,但突然只更改了...

android wear-os android-wear-data-api
1个回答
0
投票

经过一些调试后,我发现我使用的shell代码有一个process.waitFor()。执行一个shell命令后,这阻止了应用程序执行任何操作。因此,数据层没有错。

© www.soinside.com 2019 - 2024. All rights reserved.