Titel fasst zusammen. Die gleiche Frage lautet here. Auf SO schreiben, um zu sehen, ob ich Hilfe bekommen kann. Ich habe auch eine almost minimal project gemacht, um das Problem zu demonstrieren, auf das ich stehe, also verweisen Verbindungen, die folgen, auf das Stück des erwähnten Codes.Empfangen von AppMessage-Callbacks beim Senden von Nachrichten innerhalb eines Bluetooth-Verbindungsereignisses nicht
Nichts Besonderes auf , was ich derzeit tue:
- Mein Zifferblatt ist notified, dass die Bluetooth-Verbindung mit dem Telefon nach oben ist,
.pebble_app_connection_handler
verwenden. - In diesem bluetooth callback ich eingerichtet, ich send ein message to the phone mit
app_message_outbox_send()
. Wenn die BT-Verbindung besteht, natürlich. - Meine Android App hat eine
BroadcastReceiver
, die auf diese Nachrichten hört und calls anIntentService
. - Diese
IntentService
calculates the data, pushes it to the watch und sets itself to run again nach einiger Zeit.
Was ich erwarte, dass:
- Wenn die BT-Verbindung besteht, wird die Verbindung Handler aufgerufen werden.
app_message_outbox_send()
geben Sie einen Wert zurück, der angibt, ob bei der Nachrichteninitiierung Fehler aufgetreten sind. Normalerweise ist diesAPP_MSG_OK
, aber es kannAPP_MSG_BUSY
sein, und ich bin mir dessen vollkommen bewusst.- Die App-Nachricht Callbacks (
app_message_register_inbox_received
und Freunde) aufgerufen werden, um anzuzeigen, wenn der asynchrone Prozess des Sendens von Nachrichten an das Telefon wirklich funktioniert. Dies ist in der docs angegeben.
Was ich sehe:
Die zu erwartenden Schritte geschehen, wenn das Ziffernblatt geladen wird, weil ich das Update manuell auslösen. Wenn das Update jedoch durch ein BT-Verbindungsereignis ausgelöst wird, passieren die erwarteten Schritte 1 und 2, aber nicht der 3. Schritt. Das ist besonders ärgerlich, wenn ich in Schritt 2 APP_MSG_OK
bekomme, weil ich vernünftigerweise alles erwarten sollte die Uhr ging in Ordnung, und ich sollte mich darauf vorbereiten, innerhalb der App Callbacks etwas zu erhalten. Im Grunde wird mir von der Dokumentation gesagt, auf einen Anruf zu warten, dass nie ankommt.
Dies geschieht in 100% der Zeit.
Vielen Dank für jede Hilfe. Ich habe eine andere Lösung, die funktioniert, mit der Uhr, um den Aktualisierungsintervall zu verfolgen, aber ich glaube, dieser ermöglicht es mir, mehr Batterie zu sparen, indem Sie die neuesten Android-Funktionen nutzen.
„benötigen können Sie die Uhr, um zu bestimmen, ob der' pebble_app_connection_handler' durch den Abschluss der _Pebble mobilen app_ verbunden ist [...] können Sie auch, wenn die Pebble-Uhr kann bestimmen, eine Verbindung zu einer _PebbleKit Companion App_ herstellen, indem Sie den 'pebblekit_connection_handler' abonnieren, der _true für Android_ zurückgibt, sobald eine Verbindung mit der _Pebble Mobile App_ hergestellt wird (da PebbleKit Nachrichten durch die Android App geleitet werden)" Quelle: https: //developer.pebble.com/docs/c/Foundation/Event_Service/ConnectionService/ – davidcesarino
Außerdem ist gerade aufgefallen, dass 'connection_service_peek_pebblekit_connection' auch bei Bluetooth i 'true' zurückgibt s aus oder ich lasse die Uhr in der Pebble App getrennt. Nur 'connection_service_peek_pebble_app_connection' scheint irgendeinen Effekt zu haben. – davidcesarino