我正在尝试将数据地图的内容从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。我做错了什么或遗失了什么?
由于
答案 0 :(得分:0)
发现我在我的主要活动onStop()中执行了googleClient.disconnect(),这导致它挂起,因为一旦我的应用程序在后台,googleClient就没有连接。
答案 1 :(得分:0)
尝试检查每次发送的google api客户端状态。 未连接google api客户端时使用blockingConnect。