2016-03-09 2 views
2

мое приложение для Android работает как центральное, подключено к периферийному устройству, позволяет отправлять уведомления и периферийное устройство.android bluetooth low energy status = 59

моя проблема в том, что соединение прекращается примерно через 13 секунд.

ниже у меня есть информация о logcat.

Что такое статус 59 из Bluetooth LE в Android?

BluetoothGatt: connect() - device: C5:7F:B0:8E:AA:91, auto: false 
BluetoothGatt: registerApp() 
BluetoothGatt: registerApp() - UUID=3a9c080d-ae20-47ea-b34c-7ea7798204cc 
BluetoothGatt: onClientRegistered() - status=0 clientIf=5 
BluetoothGatt: onClientConnectionState() - status=0 clientIf=5 device=C5:7F:B0:8E:AA:91 
BluetoothGatt: discoverServices() - device: C5:7F:B0:8E:AA:91 
BluetoothGatt: onSearchComplete() = Device=C5:7F:B0:8E:AA:91 Status=0 
BluetoothGatt: setCharacteristicNotification() - uuid: 00002a05-0000-1000-8000-00805f9b34fb enable: true 
BluetoothGatt: setCharacteristicNotification() - uuid: 00001625-1212-efde-1523-785feabcd123 enable: true 
BluetoothGatt: cancelOpen() - device: C5:7F:B0:8E:AA:91 
BluetoothGatt: onClientConnectionState() - status=59 clientIf=5 device=C5:7F:B0:8E:AA:91 
BluetoothGatt: close() 
BluetoothGatt: unregisterApp() - mClientIf=5 
+0

Работает ли ваше приложение для Android на Android 6.0 или новее? – JPS

+0

Да, он работает на nexus 9 с android 6 – schoensn

ответ

2

У меня была такая же проблема. После некоторого копания я нашел в нашем случае код состояния 59 (или 0x3B hex), указывающий на HCI_ERR_UNACCEPT_CONN_INTERVAL.

Изучив журналы отслеживания Bluetooth HCI с моего телефона, я обнаружил, что устройство устройства ведет переговоры с телефоном о параметрах соединения. Устройство запросило интервал соединения 7,5 мс, и телефон отклонил это. Через три раза (15 мс) устройство отключилось и перезагрузилось.

Я нашел this post, указав, что минимальный интервал подключения в Android 6.0 изменился на 12,5 мс. Поэтому, если вы отрегулируете интервал соединения, который запрашивает устройство, вы, вероятно, сохраните соединение.

+0

ok. thats проблема, у меня был минимальный интервал соединения 7,5 мс. Благодарю. – schoensn

+0

СПАСИБО! Это тоже моя проблема. За исключением моего случая, у меня был MIN_CONN_INTERVAL устройства, установленный на 20 мс, поэтому он продолжал пересматривать, когда устанавливал высокий приоритет в Android. – Chriszuma

+0

@schoensn, что означает статус 15? Где мы можем получить список статусов и его значение, возвращаемое gatt? –

Смежные вопросы