【问题标题】:Delay in Android Wear putDataItem() and invoking of onDataChanged()Android Wear putDataItem() 延迟和 onDataChanged() 调用
【发布时间】:2015-12-22 18:09:13
【问题描述】:

我想在我的 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 应用中调用 putDataItem() 方法中的 onResult() 与在我的移动应用中调用 onDataChanged() 方法之间存在显着延迟(大约 10 秒)。
这意味着当我按下手表上通知上的“打开”操作按钮时,对话框会在大约 10 秒后在我的手机上打开。
如果可能的话,我希望这是即时的。

这可能吗,还是我在代码中做错了什么?

最好的,

【问题讨论】:

    标签: wear-os android-wear-data-api android-wear-notification


    【解决方案1】:

    切换到使用MessageApi。它适用于这样的情况:它没有交付保证(如果设备目前未连接),但速度很快。而点击一个按钮正是它应该被使用的情况(因为用户可以重复它)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-06
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多