Frage

Ich versuche, Bluetooth Low Energy von Android zu verwenden, um mit einem BLE-Gerät zu kommunizieren.Wenn ich zum ersten Mal eine Verbindung herstelle, funktioniert alles einwandfrei (die Verbindung zum GATT-Server funktioniert, alle Dienste und Eigenschaften werden erkannt usw.). Wenn ich jedoch die Verbindung trenne und versuche, die Verbindung erneut herzustellen, wird zwar eine Verbindung zum GATT-Server hergestellt, dies ist jedoch nicht der Fall in der Lage, die Dienste zu entdecken.Ich muss die App beenden und neu starten, und manchmal funktioniert auch das nicht.

Dies ist der Code, den ich verwende, um die Verbindung zum Gerät zu trennen:

public void close(View view) {
    if (mBluetoothGatt == null) {
        return;
    }
    mBluetoothGatt.close();
    mBluetoothGatt = null;
}

Muss ich beim Trennen der Verbindung noch etwas tun?Es scheint, dass eine Ressource immer noch verbunden ist und die Erkennung von Diensten verhindert, wenn ich versuche, die Verbindung wiederherzustellen.

War es hilfreich?

Lösung

Ich scheine die Lösung gefunden zu haben:Sie müssen beide anrufen BluetoothGatt.disconnect() UND BluetoothGatt.close().

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top