0

我有一个问题,当我从 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 端正确地对消息进行了 N/ACK(很难学到),但我没有看到在 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 设置正确。

4

1 回答 1

0

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

我确实找到了事件监听器,但这是基于 JS 的,我的应用程序是用 C 编写的。

希望这对某人有帮助!

于 2016-10-05T21:04:44.900 回答