2015-02-08 2 views
2

Я написал приложение Android (4.4.2), которое обычно подключается/отсоединяется в большинстве случаев до периферийного устройства BLE. Тем не менее, каждый раз в то время я получаю предупреждение LogCat из NullPointerException в Bluetootgatt.java onClientConnectionState(): errorAndroid BluetoothGatt: необработанное выполнение в обратном вызове

Мой BluetoothGattCallback обратного вызова следующим образом:

@Override 
public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) 
{ 
if (status == BluetoothGatt.GATT_SUCCESS && newState == BluetoothProfile.STATE_CONNECTED) 
{ 
    gatt.discoverServices(); // triggers onServicesDiscovered() callback 
} 
else if (status == BluetoothGatt.GATT_SUCCESS && newState == BluetoothProfile.STATE_DISCONNECTED) 
{ 
     return; 
} 
else if (status != BluetoothGatt.GATT_SUCCESS) 
{ 
    gatt.disconnect(); 
} 
} 

приложение всегда правильно идет к onConnectionStateChange newState == STATE_CONNECTED обратный вызов при подключении, но когда он выдает исключение (при отключении приложения), он никогда не идет нигде в обратном вызове onConnectionStateChange. Я запускаю это на 2013 Nexus 7. Почему это исключение происходит?

+0

Вы заставляли его работать? – shamaleyte

ответ

3

Это похоже на мой вызов disconnect(), за которым следует функция close() в моей функции onPause(). Я удалил disconnect(), и close() отлично справится с отключением, и я больше не вижу исключения.

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