6

У меня есть приложение для Android, которое предоставляет сервер BLE. Я подключаюсь к BluetoothGattServer#connect. Это работает - мое приложение получает звонок до BluetoothGattServerCallback#onConnectionStateChange с STATE_CONNECTED. Когда я закончил с клиентом, я пытаюсь отключиться от своего приложения с BluetoothGattServer#cancelConnection.BluetoothGattServer cancelConnection не отменяет соединение

Но я не получаю позвонить в BluetoothGattServerCallback#onConnectionStateChange и, кажется, что соединение по-прежнему активно, как мой клиент BLE не начинает рекламировать (что он делает, когда ничего не подключено к нему).

В LogCat я вижу только:

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

Самое смешное, что мое приложение получает позвонить в BluetoothGattServerCallback#onConnectionStateChange с STATE_DISCONNECTED как только я выключаю BT полностью.

Похожие ошибки в отслеживании Google: 63461 и 63464.

+0

IIRC cancelConnection полностью разбитые на большинстве ранних устройств, когда Android BLE сначала вышли, и Google решил не исправлять это. – reTs

+0

Вам удалось найти исправление для этого? Я борюсь с тем же делом –

+0

Нет. Я решил двигаться как можно дальше от БЛЕ, так как могу и никогда не приближаться. –

ответ

1

Обход этой же проблемы при вызове метода disconnect(). В моем соединении BluetoothGattCallback не отключено отключение в onConnectionStateChange.

Велоспорт Bluetooth, похоже, единственное, что работает.

редактировать: также, после отключения() и метода, близкого() называется, я все еще подключен в соответствии с этим кодом:

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

Что вы подразумеваете под «Cycling Bluetooth, похоже, это единственное, что работает»? –

+0

Включение и выключение Bluetooth – user1064249

+0

Вам удалось найти исправление для этого? Я борюсь с тем же –