由于app_msg_busy,诊断从电话到Android的消息掉落



我正在尝试将消息从Android Companion应用程序发送到Pebble Watchface应用程序,但这会失败,而APP_MSG_BUSY错误。阅读日志,我可以重建以下事件序列,这些事件正在反复发生:

  1. 卵石应用程序调用app_message_outbox_send
  2. Android Companion应用程序接收PebbleDataReceiver.receiveData调用。
  3. Android Companion App调用PebbleDataReceiver.sendAckToPebble(context, id)
  4. 卵石应用接收outbox_sent调用。
  5. Android Companion App做了一些工作,少于70ms。
  6. Android Companion App调用PebbleKit.sendDataToPebble
  7. Pebble应用接收inbox_dropped使用APP_MSG_BUSY
  8. adb logcat显示以下警告:

pbl:[appMessage] transActionId没有UUID:-1
pbl:[jsinappmessagehandler] sendacknacktojs:运行:无法将ACK消息发送到JavaScript代码,因为UUID为null

APP_MSG_BUSY表明正在进行的传入或传出消息。但是,您可以从上面的事件中看到没有发出的消息。另外,这是每个传入的消息都会发生这种情况,即使是卵石应用重新启动后也会收到的第一个。

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

我发现了我的错误:当我致电app_message_open时,我传递了一个size_inbound的值,该值太小而无法接收到发送的任何消息。不幸的是,我的inbox_dropped函数给出的AppMessageResult不是人们所期望的APP_MSG_BUFFER_OVERFLOW,而是APP_MSG_BUSY

现在,对于纯粹的猜测:可能会加剧的是size_outbound足够大。实际上,我的错误是交换了size_inboundsize_outbound参数。也许从某种程度上,发送APP_MSG_BUFFER_OVERFLOW是没有意义的,因为至少一个缓冲区足够大?

最新更新