【问题标题】:Not receiving AppMessage callbacks when sending message inside a bluetooth connection event在蓝牙连接事件中发送消息时未收到 AppMessage 回调
【发布时间】:2016-05-30 22:20:07
【问题描述】:

标题总结了它。同样的问题是here。在 SO 上发帖,看看我能不能得到任何帮助。我还创建了一个almost minimal project 来演示我面临的问题,因此后面的链接指向所提到的代码段。

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

  1. 我的表盘是notified,表示与手机的蓝牙连接已启动,使用.pebble_app_connection_handler
  2. 在我设置的bluetooth callback 中,我使用app_message_outbox_send() sendmessage to the phone。当然,当 BT 连接建立时。
  3. 我的 Android 应用有一个 BroadcastReceiver 来监听这些消息,还有一个 calls an IntentService
  4. 一段时间后,IntentServicecalculates the datapushes it to the watchsets itself to run again

我的期望

  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 功能来节省更多电量。

【问题讨论】:

    标签: asynchronous bluetooth callback pebble-watch pebble-appmessage


    【解决方案1】:

    来自文档:

    也会收到与任何 PebbleKit 相关的连接事件的通知 与此 watchapp 关联的配套应用程序,也分配一个处理程序到 pebblekit_connection_handler 字段。这将在 PebbleKit 应用程序的连接状态发生变化。

    也许这是你需要的

    【讨论】:

    • “允许您通过订阅pebble_app_connection_handler来确定手表是否连接到Pebble移动应用程序 […]还允许您确定Pebble手表是否可以通过订阅pebblekit_connection_handler […] 建立与 PebbleKit 配套应用程序 的连接,这将在任何时候与 Pebble 移动应用程序连接时返回 true for Android /i> 已建立(因为 PebbleKit 消息是通过 Android 应用程序路由的)”来源:developer.pebble.com/docs/c/Foundation/Event_Service/…
    • 此外,刚刚注意到connection_service_peek_pebblekit_connection 会返回true,即使在蓝牙关闭或我在 Pebble 应用程序中将手表断开连接时也是如此。只有connection_service_peek_pebble_app_connection 似乎有任何效果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    • 2014-10-28
    • 1970-01-01
    相关资源
    最近更新 更多