2016-05-31 8 views
0

Ich mache eine BLE-Anwendung und ich folge dem Beispiel in here, aber ich möchte die ble Daten im Hintergrund auch die App ist geschlossen, so änderte ich "BindService" auf "startService" zu starte meinen Service.BluetoothGattCallback scheint keine Antwort in "StartService"

Allerdings habe ich festgestellt, dass nach der Initialisierung & das Gerät verbinden, der Rückruf ist keine Antwort, was bedeutet, dass es die Funktion im Callback nicht einmal den Verbindungsstatus geändert oder gatt entdecken. Ich habe einen ähnlichen Beitrag in here gefunden, aber es scheint niemand bieten Lösung für ihn.

Wie kann ich das lösen? Warum funktioniert der Callback, indem er "bindService" aufruft, um den Dienst zu starten, aber nicht durch den Aufruf von "startService", um den Dienst zu starten?

Mein Service-Code ist here Dank

Antwort

0

Stellen Sie sicher, Sie anrufen connectGatt() auf dem Haupt-Thread, da einige Telefone dies für den Rückruf benötigen zu arbeiten.

Beachten Sie auch, dass auf einigen Telefonen der gatt Callback auf einen anderen Thread ausgelöst werden kann, bevor connectGatt() mit dem gatt Objekt zurückkehrt.