BLE onConnectionStateChange вызывается дважды при закрытии соединения

Наконец-то я получил свое устройство (на основе TI CC2541) для работы с моим телефоном (прототип/пока еще некоммерческий телефон под управлением Android 4.3). Я могу успешно сканировать, обнаруживать, подключаться и получать уведомления. Однако, когда я отключаюсь (вызывая BluetoothGatt.disconnect()), обратный вызов onConnectionStateChange вызывается с newState=STATE_DISCONNECTED (как и ожидалось), но затем немедленно вызывается снова с newState=STATE_CONNECTED.
Соединение определенно прервано, поэтому я не уверен, почему я получаю второй вызов onConnectionStateChange. Кто-нибудь испытал что-то подобное?


person FalconT    schedule 21.10.2013    source источник
comment
Ваше устройство привязано? Я смутно припоминаю, что какое-то автоподключение происходило для связанных устройств, но, как я уже сказал, это расплывчато. У меня также были ненадежные результаты BLE в зависимости от физического стека устройства, поэтому вам могут понадобиться некоторые данные поставщика о стабильности стека и совместимости с новым API 4.3 BLE.   -  person jkraybill    schedule 22.10.2013
comment
У меня точно такая же проблема.   -  person cnbuff410    schedule 28.10.2013


Ответы (1)


Проверьте статус, предоставленный вам в onConnectionStateChange; если статус не 0 (ОК), то вы на самом деле не получили соединение. Я обнаружил несколько случаев, когда я получаю сообщение CONNECTED, но статус указывает на то, что происходит что-то еще.

person Douglas Jones    schedule 01.11.2013