10

标题总结了它。同样的问题在这里。在 SO 上发帖,看看我能不能得到任何帮助。我还制作了一个几乎最小的项目来演示我面临的问题,因此后面的链接指向所提到的代码段。

对我目前正在做的事情没有什么特别的:

  1. 我的表盘被通知与手机的蓝牙连接已启动,使用.pebble_app_connection_handler.
  2. 在我设置的那个蓝牙回调我使用. 当然,当 BT 连接建立时。app_message_outbox_send()
  3. 我的 Android 应用程序有一个BroadcastReceiver监听这些消息并调用一个IntentService.
  4. IntentService 会计算数据将其推送到手表并设置自己在一段时间后再次运行。

我的期望

  1. 当 BT 连接建立时,将调用连接处理程序。
  2. app_message_outbox_send()返回一个值,告诉消息启动是否有任何错误。通常,这是APP_MSG_OK,但它可以是APP_MSG_BUSY,我完全意识到这一点。
  3. 调用应用程序消息回调(app_message_register_inbox_received和朋友)来指示向手机发送消息的异步过程是否真的有效。这在docs中有说明。

我所看到的

加载表盘时会发生预期的步骤,因为我手动触发了更新。但是,当更新由 BT 连接事件触发时,会发生预期的步骤 1 和 2,但不会发生步骤 3。

当我进入第 2 步时,这尤其严重APP_MSG_OK,因为我应该合理地期望手表上的一切都正常,并且我应该准备好在应用程序消息回调中接收一些东西。基本上,医生告诉我要等待一个永远不会到达的电话。

这发生在 100% 的时间

感谢您的任何帮助。我有另一种可行的解决方案,使用手表来跟踪更新间隔,但我相信这个解决方案可以让我通过利用最近的 Android 功能来节省更多电池电量。

4

1 回答 1

3

从文档:

要同时收到与与此 watchapp 关联的任何 PebbleKit 配套应用程序相关的连接事件的通知,还要为pebblekit_connection_handler字段分配一个处理程序。当与 PebbleKit 应用程序的连接状态发生变化时,将调用此方法。

也许这是你需要的

于 2016-02-23T22:08:24.953 回答