我为Android Wear开发了一个应用程序。下面的代码带有问题的解释

 if(mGoogleApiClient.isConnected()){
            K.i("Always called!");
            Wearable.NodeApi.getConnectedNodes(mGoogleApiClient).setResultCallback(new ResultCallback<NodeApi.GetConnectedNodesResult>() {
                @Override
                public void onResult(NodeApi.GetConnectedNodesResult nodes) {
                    K.i("Never called :( ");
                    for (Node node : nodes.getNodes()) {
                        Wearable.MessageApi.sendMessage(mGoogleApiClient, node.getId(), message, null);
                    }
                }
            });
        }

UPD:我可以通过关闭电源并重新打开手机的方式来解决问题(Nexus 5),也许有更简单的方法来解决问题吗?

试图添加.await()和AsyncTask,但是结果是相同的

最佳答案

我相信您每个GoogleApiClient连接只能调用一次getConnectedNodes。您想在第一次获得结果时缓存节点ID,然后使用onPeerConnected/Disconnected()回调来跟踪节点ID是否仍然相关。

10-08 13:59