writeCharacteristic Android 出现空指针异常

Null pointer exception on writeCharacteristic Android

我正在尝试对 android 应用程序上的微处理器执行 ble 写入,但发生了一些奇怪的事情。

首先,错误日志如下:

Unhandled exception in callback
                                                                                   java.lang.NullPointerException
                                                                                       at android.bluetooth.BluetoothGatt.writeCharacteristic(BluetoothGatt.java:874)
                                                                                       at com.example.tannerhenry.standalone.ConfigurationActivity.setWriteSensor(ConfigurationActivity.java:248)
                                                                                       at com.example.tannerhenry.standalone.ConfigurationActivity.access0(ConfigurationActivity.java:31)
                                                                                       at com.example.tannerhenry.standalone.ConfigurationActivity.onServicesDiscovered(ConfigurationActivity.java:289)
                                                                                       at android.bluetooth.BluetoothGatt.onSearchComplete(BluetoothGatt.java:295)
                                                                                       at android.bluetooth.IBluetoothGattCallback$Stub.onTransact(IBluetoothGattCallback.java:215)
                                                                                       at android.os.Binder.execTransact(Binder.java:404)
                                                                                       at dalvik.system.NativeStart.run(Native Method)

调试了一下后,我注意到我尝试写入的特征没有被发现,因此解释了为什么会出现空指针异常。

问题是这个特性肯定是被宣传了,因为我在我的 iPhone 上下载了 LightBlue 并且这个特性出现了。这让我相信我在初始化特征时犯了一个错误,但我从应用商店下载蓝牙 LE 扫描仪后,它仍然以与我的应用相同的方式运行。

iOS 和 android getCharacteristics 的方式有区别吗?

注意:我以前遇到过这个问题,解决方法是重新下载应用程序几次,它最终读取了特征。但是我在我的平板电脑上做了一个数据清除,现在它和以前一样做同样的事情,这次重新下载并没有修复它。

如有任何帮助,我们将不胜感激,如有必要,我可以提供更多代码。

已通过手动忘记之前配对的设备并进行修复解决了该问题。