6

Ich habe eine Android-Anwendung, die BLE-Server verfügbar macht. Ich verbinde mich mit BluetoothGattServer#connect. Es funktioniert - meine App ruft BluetoothGattServerCallback#onConnectionStateChange mit STATE_CONNECTED an. Wenn ich mit dem Client fertig bin, versuche ich mich von meiner App mit BluetoothGattServer#cancelConnection zu trennen.BluetoothGattServer cancelConnection bricht die Verbindung nicht ab

Aber ich habe nicht nennen BluetoothGattServerCallback#onConnectionStateChange und es scheint, dass die Verbindung noch aktiv ist, wie mein BLE-Client nicht zu werben, startet (was es tut, wenn nichts mit ihm verbunden ist). nur

In logcat sehe ich:

BluetoothGattServer: cancelConnection() - device: XX:XX:XX:XX:XX:XX 

Der lustige Teil ist, bekommt meine App so schnell BluetoothGattServerCallback#onConnectionStateChange mit STATE_DISCONNECTED nennen, wie ich völlig BT auszuschalten.

Ähnliche Probleme in Google-Tracker: 63461 und 63464.

+0

iirc CancelConnection vollständig auf die meisten der frühen Geräte unterbrochen wird, wenn Android ble zuerst herauskommen und Google entschied, das nicht zu beheben. – reTs

+0

Haben Sie eine Lösung gefunden? Ich kämpfe mit der gleichen Sache –

+0

Nein - ich beschloss, so weit weg von BLE zu bewegen, wie ich kann und nie wieder nahe kommen. –

Antwort

1

Das gleiche Problem beim Aufrufen der Methode disconnect(). In onConnectionStateChange in meinem BluetoothGattCallback wird keine Trennung angegeben.

Radfahren Bluetooth scheint die einzige Sache zu sein, die funktioniert.

edit: auch nach disconnect() und close() -Methode aufgerufen werden, bin ich immer noch nach diesem Code verbunden ist:

public int getConnectedBLEDevices() { 
     int i = 0; 
     List<BluetoothDevice> devices = mBluetoothManager.getConnectedDevices(BluetoothProfile.GATT); 
     for(BluetoothDevice device : devices) { 
      if(device.getType() == BluetoothDevice.DEVICE_TYPE_LE) { 
       Logs.writeEvent(TAG+".getConnectedBLEDevices()", device.getAddress() + "\n"+ getStateAsString(mBluetoothManager.getConnectionState(device, BluetoothProfile.GATT))); 
       i++; 
      } 
     } 
     return i; 
    } 
+0

Was meinen Sie mit "Radfahren Bluetooth scheint das einzige, was funktioniert."? –

+0

Bluetooth ein- und ausschalten – user1064249

+0

Haben Sie eine Lösung gefunden? Ich kämpfe mit der gleichen Sache –