AppMessages Спорадически не доставляют

У меня есть проблема, когда я, когда я отправляю сообщение со стороны 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 зарегистрирован, но я не включил это для краткости.

Я правильно N/ACK отправил сообщение на стороне Android (узнал, что это сложный путь), но я не вижу способа N/ACK сообщения на стороне Pebble. Я предполагаю, что предоставления обратного вызова достаточно?

Хорошей новостью является то, что иногда это работает, поэтому я знаю, что все настроено правильно. Плохая новость заключается в том, что когда он перестает работать, он перестает работать почти полностью и на некоторое время (15 минут или дольше). Я подозреваю, что почтовый ящик заполняется, но я не знаю, как проверить.

РЕДАКТИРОВАТЬ: я добавил обработчик Ack и Nack на стороне Android, и я получаю Nack, когда я отправляю сообщение. Мне нужно выяснить, почему мои часы Pebble не позволяют ничего. Есть догадки?

Я также нахожу это в logcat от Android:

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

Я подтвердил, что мой UUID установлен правильно.

1 ответ

Похоже, это проблема времени. После исследования в Интернете и поиска ссылки, я добавил psleep(1000) к своему коду, и он работает нормально. Я отправлял сообщение, пока приложение еще запускалось.

Я нашел прослушиватель событий, но он основан на JS, а мое приложение написано на C.

Надеюсь, это поможет кому-то!

Другие вопросы по тегам