AppMessages偶尔无法交付

时间:2016-10-05 19:52:25

标签: android pebble-watch pebble-sdk pebble-appmessage

我有一个问题,当我从Android端(在广播接收器中)发送消息时,消息并不总是进入Pebble手表。它不一致,有时它有效。

我不再获得APP_MSG_BUSY结果(我只想发送一条消息Android-> Pebble)。

这很简单,我发送的是少量数据(<64字节):

PebbleKit.sendDataToPebble(context, appUuid, dict)

我已将收件箱和发件箱大小配置为最大值。

在鹅卵石方面,我已经注册了我的回调,我就这样处理了这个消息:

static void inbox_received_callback(DictionaryIterator *iter, void *context) {
   // A new message has been successfully received
   APP_LOG(APP_LOG_LEVEL_INFO, "Message received");
}

注意:还注册了inbox_dropped_callback,但为了简洁,我没有将其包括在内。

我已经在Android端正确地确认了消息(了解到了困难),但是我没有看到在Pebble端N / ACK消息的方法。我假设提供回调就足够了吗?

好消息是它有时会起作用,所以我知道我已经正确配置了所有内容。坏消息是,当它停止工作时,它几乎完全停止工作并持续相当长的时间(15分钟或更长时间)。我怀疑收件箱正在填写,但我不知道如何检查。

编辑:我在Android端添加了一个Ack和一个Nack处理程序,当我发送消息时,我得到一个Nack。我需要弄清楚为什么我的Pebble手表不允许使用。任何猜测?

我也在Android的logcat中找到了这个:

10-05 13:16:37.206 8361-2610/? W/Pbl: [AppMessage]  there is not UUID for transactionId : -1

我已确认我的UUID设置正确。

1 个答案:

答案 0 :(得分:0)

这似乎是timing问题。在线研究并找到引用的帖子后,我在我的代码中添加了一个psleep(1000),它运行正常。当应用程序仍在启动时,我正在发送消息。

我确实找到了event listener,但这是基于JS的,我的应用程序是用C语言编写的。

希望这有助于某人!