10

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:

  1. Mein Zifferblatt ist notified, dass die Bluetooth-Verbindung mit dem Telefon nach oben ist, .pebble_app_connection_handler verwenden.
  2. 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.
  3. Meine Android App hat eine BroadcastReceiver, die auf diese Nachrichten hört und calls an IntentService.
  4. Diese IntentServicecalculates the data, pushes it to the watch und sets itself to run again nach einiger Zeit.

Was ich erwarte, dass:

  1. Wenn die BT-Verbindung besteht, wird die Verbindung Handler aufgerufen werden.
  2. app_message_outbox_send() geben Sie einen Wert zurück, der angibt, ob bei der Nachrichteninitiierung Fehler aufgetreten sind. Normalerweise ist dies APP_MSG_OK, aber es kann APP_MSG_BUSY sein, und ich bin mir dessen vollkommen bewusst.
  3. 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.

Antwort

3

Aus Dokumentation:

auch von Verbindungsereignissen in jedem PebbleKit Begleiter Apps mit diesem watchapp im Zusammenhang im Zusammenhang benachrichtigt werden, weisen auch einen Handler die pebblekit_connection_handler Feld. Diese wird aufgerufen, wenn sich der Status der Verbindung zur PebbleKit App ändert.

Vielleicht ist es das, was Sie

+0

„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

+0

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

Verwandte Themen