2016-06-16 11 views
0

Я пытаюсь отправить сообщение из приложения Android-компаньона в приложение Pebble watchface, но это не с ошибкой APP_MSG_BUSY. Чтение журналов, можно восстановить следующую последовательность событий, которая происходит неоднократно:Диагностировать сообщение с телефона на андроид, сброшенное из-за APP_MSG_BUSY?

  1. Pebble приложение вызывает app_message_outbox_send.
  2. Приложение для компаньона для Android получает PebbleDataReceiver.receiveData звонок.
  3. Приложение для сопутствующих приложений для Android PebbleDataReceiver.sendAckToPebble(context, id).
  4. Приложение Pebble получает outbox_sent звонок.
  5. Приложение для компаньона для Android выполняет некоторую работу, которая занимает меньше 70 мс.
  6. Приложения для сопутствующих приложений для Android PebbleKit.sendDataToPebble.
  7. Приложение Pebble получает inbox_dropped звонок с APP_MSG_BUSY.
  8. adb logcat показывает следующие предупреждения:

Pbl: [AppMessage] там не UUID для TransactionID: -1
Pbl: [JsInAppMessageHandler] sendAckNackToJs: запуск: не может послать сообщение подтверждения яваскрипта кода потому что uuid является нулевым

APP_MSG_BUSY предполагает, что происходит входящее или исходящее сообщение. Однако из приведенных выше событий вы можете видеть, что нет исходящего сообщения. Кроме того, это происходит для каждого входящего сообщения, даже первого, которое приложение Pebble получает после перезапуска.

Может ли кто-нибудь дать представление о том, что здесь происходит?

ответ

0

Я нашел свою ошибку: когда я позвонил app_message_open, я передал значение для size_inbound, которое было слишком маленьким, чтобы получать какие-либо сообщения, которые были отправлены. К сожалению, AppMessageResult, предоставленный моей функции inbox_dropped, не был APP_MSG_BUFFER_OVERFLOW, как и следовало ожидать, но APP_MSG_BUSY.

Теперь для явных предположений: что могло бы усугубить это было то, что size_outbound было достаточно большим. Фактически, моя ошибка заключалась в замене аргументов size_inbound и size_outbound. Может быть, по какой-то логике, не имеет смысла посылать APP_MSG_BUFFER_OVERFLOW, потому что хотя бы один из буферов был достаточно большим?