我想在我的 Android Wear 应用程序的通知上使用操作按钮“打开”,在我的手持设备上打开一个包含一些任务数据的对话框。
为此,我将消息放入 PutDataMapRequest 并在可穿戴代码中使用以下方法:
PutDataMapRequest dataMap = PutDataMapRequest.create("/task/" + "1");
dataMap.getDataMap().putString(DataMapKeys.TASK_MESSAGE, message);
....
dataMap.getDataMap().putLong("timestamp", System.currentTimeMillis());
PutDataRequest putDataRequest = dataMap.asPutDataRequest();
Wearable.DataApi.putDataItem(googleApiClient, putDataRequest).setResultCallback(new ResultCallback<DataApi.DataItemResult>() {
@Override
public void onResult(DataApi.DataItemResult dataItemResult) {
Log.d(TAG, "Sending task data: " + dataItemResult.getStatus().isSuccess());
}
});
然后,在我的手持/移动设备上的 WearableListenerService 中捕获它:
@Override
public void onDataChanged(DataEventBuffer dataEvents) {
Log.d(TAG, "Received task data, now opening dialog..");
}
但是,在我的 Wear 应用程序中调用方法与在我的移动应用程序中调用onResult()
该方法之间存在显着延迟(大约 10 秒) 。这意味着当我按下手表通知上的“打开”操作按钮时,对话框会在大约 10 秒后在我的手机上打开。如果可能的话,我希望这是即时的。putDataItem()
onDataChanged()
这是可能的,还是我在我的代码中做错了什么?
最好的,