0

我正在尝试将消息从 Android 配套应用程序发送到 Pebble 表盘应用程序,但这会失败并出现APP_MSG_BUSY错误。阅读日志,我可以重构以下重复发生的事件序列:

  1. Pebble 应用程序调用app_message_outbox_send
  2. Android 配套应用PebbleDataReceiver.receiveData接听电话。
  3. Android 配套应用调用PebbleDataReceiver.sendAckToPebble(context, id)
  4. Pebble 应用程序outbox_sent接听电话。
  5. Android 配套应用程序可以完成一些工作,大约需要 70 毫秒。
  6. Android 配套应用调用PebbleKit.sendDataToPebble
  7. Pebble 应用程序inbox_dropped接听电话APP_MSG_BUSY
  8. adb logcat显示以下警告:

Pbl:[AppMessage] transactionId 没有 UUID:-1
Pbl:[JsInAppMessageHandler] sendAckNackToJs:运行:无法将 ack 消息发送到 javascript 代码,因为 uuid 为空

APP_MSG_BUSY表示有正在传入或传出的消息。但是,您可以从上面的事件中看到没有传出消息。此外,每条传入消息都会发生这种情况,甚至是 Pebble 应用程序在重新启动后收到的第一条消息。

任何人都可以对这里发生的事情提供一些见解吗?

4

1 回答 1

0

我发现了我的错误:当我调用 时app_message_open,我传递了一个size_inbound太小而无法接收任何正在发送的消息的值。不幸的是,AppMessageResult给我的 inbox_dropped 函数并没有APP_MSG_BUFFER_OVERFLOW像人们预期的那样,但是APP_MSG_BUSY.

现在进行纯粹的猜测:可能会加剧这种情况的是它size_outbound足够大。事实上,我的错误是交换了size_inboundandsize_outbound论点。也许,根据某种逻辑,发送没有意义,APP_MSG_BUFFER_OVERFLOW因为至少有一个缓冲区足够大?

于 2016-07-06T00:51:49.030 回答