标题总结了它。同样的问题在这里。在 SO 上发帖,看看我能不能得到任何帮助。我还制作了一个几乎最小的项目来演示我面临的问题,因此后面的链接指向所提到的代码段。
对我目前正在做的事情没有什么特别的:
- 我的表盘被通知与手机的蓝牙连接已启动,使用
.pebble_app_connection_handler
. - 在我设置的那个蓝牙回调中,我使用. 当然,当 BT 连接建立时。
app_message_outbox_send()
- 我的 Android 应用程序有一个
BroadcastReceiver
监听这些消息并调用一个IntentService
. - 这
IntentService
会计算数据,将其推送到手表并设置自己在一段时间后再次运行。
我的期望:
- 当 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 功能来节省更多电池电量。