我正在尝试将来自Android随播广告应用的消息发送到Pebble watchface应用,但这会因APP_MSG_BUSY
错误而失败。阅读日志,我可以重建以下重复发生的事件序列:
app_message_outbox_send
来电。PebbleDataReceiver.receiveData
电话。PebbleDataReceiver.sendAckToPebble(context, id)
收到outbox_sent
来电。PebbleKit.sendDataToPebble
显示以下警告:Pbl:[AppMessage] transactionId没有UUID:-1
Pbl:[JsInAppMessageHandler] sendAckNackToJs:run:无法向javascript代码发送ack消息,因为uuid为null
inbox_dropped
表示正在传入或传出的消息正在进行中。但是,您可以从上面的事件中看到没有外发消息。此外,每次传入的消息都会发生这种情况,甚至是重新启动后Pebble应用程序收到的第一个消息。
任何人都可以对这里发生的事情提供一些见解吗?
答案 0 :(得分:0)
我发现了自己的错误:当我拨打app_message_open
时,我传递的size_inbound
值太小,无法接收任何正在发送的邮件。不幸的是,我的inbox_dropped函数的AppMessageResult
并不像APP_MSG_BUFFER_OVERFLOW
那样APP_MSG_BUSY
,而是size_outbound
。
现在纯粹的猜测:可能加剧的是size_inbound
足够大。实际上,我的错误是交换size_outbound
和APP_MSG_BUFFER_OVERFLOW
参数。也许,根据某种逻辑,发送{{1}}是没有意义的,因为至少有一个缓冲区足够大了?