0

Android 側 (ブロードキャスト レシーバー内) からメッセージを送信すると、メッセージが常に Pebble ウォッチに届かないという問題があります。一貫性がなく、うまくいくこともあります。

APP_MSG_BUSY の結果が得られなくなりました (Android->Pebble に 1 つのメッセージだけを送信しようとしています)。

これはごく簡単に、少量のデータ (<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 に答える