DataAPI比MessageAPI慢得多吗?

时间:2015-02-20 07:44:22

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

我正在同步可穿戴设备和智能手机之间的事件。由于我希望手机收到我的事件,即使它们已断开连接,我也开始使用DataAPI代替MessageAPI,但现在“同步”大约需要1-2秒而非0.1- 0.5秒(感知时间)。

我正在传输消息的字符串路径如“/ notification / click”和两个字节的原始数据。在DataAPI的情况下,我使用路径“/ notification / click / 1”和一个字节的原始数据。你有没有看到这种行为?除了仅在设备处于脱机状态时才使用DataAPI,您知道一个可以解决这个问题的技巧吗?

如果您想查看一些代码,请发表评论。由于该代码有很多boder板代码,我没有添加它(还)。

2 个答案:

答案 0 :(得分:2)

如果您通过查找已连接的节点NodeApi.getConnectedNodes()进行连接并查看它是否为空,则可以进行检查。但我不认为这是最好的解决方案。

如果您需要快速可靠的信息传递,请同时发送消息并设置数据项。为两者添加唯一标识符,因此您可以忽略第二个标识符。这样,如果您已连接,您将很快收到消息,然后忽略该数据项。如果未连接,则消息将丢失,但数据项将保持不变,最终将使您完成操作。您需要保留唯一标识符以处理以下情况:

  1. 已发送消息,已完成操作,
  2. 无论出于何种原因重启,
  3. 最终交付的数据项,需要忽略。

答案 1 :(得分:0)

是的,在我的测试结果中,数据API比消息api慢(不是几次,两次以上),你可以尝试一种方法来提高你的消息速度。 data api有一个特性,它可以发送支持数据大小大于100KB的资产,但是消息api不能支持大于100KB的数据大小。 使用发送消息的通用接口,检查要发送的数据大小,如果大于100KB,则使用数据api资产发送,如果不是,则使用消息api。 这是我加快我的应用程序