由于APP_MSG_BUSY,从手机到机器人的诊断消息掉线了吗?

时间:2016-06-16 05:26:08

标签: pebble-sdk pebble-appmessage

我正在尝试将来自Android随播广告应用的消息发送到Pebble watchface应用,但这会因APP_MSG_BUSY错误而失败。阅读日志,我可以重建以下重复发生的事件序列:

  1. Pebble应用程序调用{​​{1}}。
  2. Android随播广告应用会收到app_message_outbox_send来电。
  3. Android随播广告应用程序调用{​​{1}}。
  4. Pebble应用程序收到PebbleDataReceiver.receiveData电话。
  5. Android随播应用做了一些工作,耗时少于70毫秒。
  6. Android随播广告应用程序调用{​​{1}}。
  7. Pebble应用程序通过PebbleDataReceiver.sendAckToPebble(context, id)收到outbox_sent来电。
  8. PebbleKit.sendDataToPebble显示以下警告:
  9.   

    Pbl:[AppMessage] transactionId没有UUID:-1
      Pbl:[JsInAppMessageHandler] sendAckNackToJs:run:无法向javascript代码发送ack消息,因为uuid为null

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

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

1 个答案:

答案 0 :(得分:0)

我发现了自己的错误:当我拨打app_message_open时,我传递的size_inbound值太小,无法接收任何正在发送的邮件。不幸的是,我的inbox_dropped函数的AppMessageResult并不像APP_MSG_BUFFER_OVERFLOW那样APP_MSG_BUSY,而是size_outbound

现在纯粹的猜测:可能加剧的是size_inbound足够大。实际上,我的错误是交换size_outboundAPP_MSG_BUFFER_OVERFLOW参数。也许,根据某种逻辑,发送{{1}}是没有意义的,因为至少有一个缓冲区足够大了?