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 が正しく設定されていることを確認しました。