【发布时间】:2016-05-30 22:20:07
【问题描述】:
标题总结了它。同样的问题是here。在 SO 上发帖,看看我能不能得到任何帮助。我还创建了一个almost minimal project 来演示我面临的问题,因此后面的链接指向所提到的代码段。
对我目前正在做的事情没什么特别的:
- 我的表盘是notified,表示与手机的蓝牙连接已启动,使用
.pebble_app_connection_handler。 - 在我设置的bluetooth callback 中,我使用
app_message_outbox_send()send 和message to the phone。当然,当 BT 连接建立时。 - 我的 Android 应用有一个
BroadcastReceiver来监听这些消息,还有一个 calls anIntentService。 - 一段时间后,
IntentServicecalculates the data、pushes it to the watch 和 sets itself to run again。
我的期望:
- 当 BT 连接建立时,将调用连接处理程序。
-
app_message_outbox_send()返回一个值,告诉消息启动是否有任何错误。通常是APP_MSG_OK,但也可以是APP_MSG_BUSY,我非常清楚这一点。 - 调用应用消息回调(
app_message_register_inbox_received和朋友)来指示向手机发送消息的异步过程是否真的有效。这在docs 中有说明。
我所看到的:
加载表盘时会发生预期的步骤,因为我手动触发了更新。但是,当更新由 BT 连接事件触发时,会发生预期的第 1 步和第 2 步,而不是第 3 步。
当我在第 2 步中收到 APP_MSG_OK 时,这尤其严重,因为我应该合理地期望手表上的一切都正常,我应该准备好自己在应用消息回调中接收 一些东西 .基本上,文档告诉我要等待永远到达的电话。
这种情况 100% 发生。
感谢您的帮助。我有另一种可行的解决方案,使用手表来跟踪更新间隔,但我相信这个解决方案可以让我通过使用最新的 Android 功能来节省更多电量。
【问题讨论】:
标签: asynchronous bluetooth callback pebble-watch pebble-appmessage