I am disconnecting and closing a bluetooth GATT instance and see the following in logcat:
07-22 09:33:20.699 5095-5113/com.assaabloy.stg.cliqconnect.android W/BluetoothGatt﹕ Unhandled exception in callback
java.lang.NullPointerException
at android.bluetooth.BluetoothGatt$1.onClientConnectionState(BluetoothGatt.java:168)
at android.bluetooth.IBluetoothGattCallback$Stub.onTransact(IBluetoothGattCallback.java:71)
at android.os.Binder.execTransact(Binder.java:404)
at dalvik.system.NativeStart.run(Native Method)
Here are the native events that immediately precede this error:
07-22 09:33:20.689 1260-1277/? D/BtGatt.GattService﹕ clientDisconnect() - address=84:EB:18:44:D2:04, connId=9
07-22 09:33:20.689 1260-1277/? D/BtGatt.btif﹕ btif_gattc_close
07-22 09:33:20.689 1260-1322/? D/BtGatt.btif﹕ btgattc_handle_event: Event 1005
07-22 09:33:20.689 1260-1568/? E/bt-btif﹕ Do not find the bg connection mask for the remote device
07-22 09:33:20.689 1260-1322/? D/BtGatt.btif﹕ btif_gattc_upstreams_evt: Event 5
07-22 09:33:20.689 1260-1322/? D/BtGatt.GattService﹕ onDisconnected() - clientIf=9, connId=9, address=84:EB:18:44:D2:04
07-22 09:33:20.689 1260-1328/? D/BtGatt.GattService﹕ unregisterClient() - clientIf=9
07-22 09:33:20.689 1260-1328/? D/BtGatt.btif﹕ btif_gattc_unregister_app
OS version: Android 4.4.4
Device: Nexus 4
Can someone please explain what's going on?
It seems you can't call these method together. The disconnection callback might arrive later than close()
method performed.
You can add mGatt.close();
into onConnectionStateChange
callback to close the connection.