有人在使用 Nexus 4 连接到 BLE 设备时遇到问题吗?我正在使用基于 TI CC2540 的 BLE 模块。我能够连接到 BLE 设备、发现服务、写入特征以及写入描述符以获取通知。然后突然之间我无法再连接到设备了。我取消了手机与设备的配对,也进行了出厂重置,但似乎没有任何效果。
我也在关注其他人在这篇文章中所做的Android 4.3 蓝牙低功耗不稳定
我禁用了wifi,通过禁用它然后启用它来重新启动手机上的蓝牙模块。就像我上面说的,这工作了一段时间,但现在我无法使用 connectGatt 方法连接到设备。我也有使用三星 BLE SDK 和 Android 4.2.2 的三星 G4,它使用同样的蓝牙模块,它仍然可以工作。
我在 logcat 中可以看到的主要内容是,当我调用 connectGatt(this, false, mBleGattCallback) 时发生空指针异常是这样的:
10-07 16:29:04.745: DEBUG/BtGatt.GattService(1090): onConnected() - clientIf=4, connId=4, address=3C:2D:B7:84:F8:83
10-07 16:29:04.745: DEBUG/BluetoothGatt(13165): onClientConnectionState() - status=0 clientIf=4 device=3C:2D:B7:84:F8:83
10-07 16:29:04.745: WARN/BluetoothGatt(13165): Unhandled exception: java.lang.NullPointerException
我可以在这里看到从 AOSP 调用的代码:https ://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/java/android/bluetooth/BluetoothGatt.java
这似乎很奇怪,因为我将回调交给了非空的连接调用。有人有想法么?