0

我正在尝试将 DataMap 的内容从 Android 设备发送到可穿戴设备。当应用程序位于我的应用程序的前台时,它工作正常,但是一旦我锁定移动设备,它就会卡在 pendingResult.await() 并且可穿戴设备不会像我保持应用程序打开时那样正常接收任何数据.

public void send(final DataMap dataMap) {
new Thread(new Runnable() {
        @Override
        public void run() {
            PutDataMapRequest putDMR = PutDataMapRequest.create(WEARABLE_DATA_PATH);
            putDMR.getDataMap().putAll(dataMap);
            PendingResult<DataApi.DataItemResult> pendingResult = Wearable.DataApi.putDataItem(googleClient, request);
            DataApi.DataItemResult result = pendingResult.await();
            if(result.getStatus().isSuccess()) {
                Log.d("qwe", "Data item set: " + result.getDataItem().getUri());
            }             
        }
    }).start();
}

此方法位于扩展 WearableListenerService 的类中,我还在 AndroidMainfest 中为该服务添加了 XML。我是在做完全错误的事情还是遗漏了什么?

谢谢

4

2 回答 2

0

发现我在我的主要活动 onStop() 中执行 googleClient.disconnect() 导致它挂起,因为一旦我的应用程序在后台,googleClient 就没有连接。

于 2015-03-03T22:23:55.200 回答
0

尝试检查每次发送的 google api 客户端状态。当 google api 客户端未连接时使用blockingConnect。

于 2015-03-05T04:25:36.803 回答