Android 4.3 BLE

3
有人在使用Nexus 4连接BLE设备时遇到问题吗?我正在使用基于TI CC2540的BLE模块。我能够连接到BLE设备,发现服务,写入特征并写入用于通知的描述符。然后突然间我再也无法连接到该设备。我已经将设备与手机取消配对,并进行了恢复出厂设置,但似乎都没有起作用。
我还遵循了其他人在此帖子Android 4.3 Bluetooth Low Energy unstable中所做的事情。
我禁用了Wi-Fi,并通过禁用然后启用电话上的蓝牙模块来重新启动了蓝牙模块。像我上面说的那样,这段时间是有效的,但现在我无法使用connectGatt方法连接到该设备。我还有一个使用Samsung BLE SDK和Android 4.2.2的Samsung 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 这似乎很奇怪,因为我将回调函数传递给了不为空的连接调用。有人有任何想法吗?
1个回答

0

请查看我重新修改的回答Android 4.3蓝牙低功耗不稳定,我添加了连接三星Galaxy S3时的经验。也许这对你有用。

如果您遇到其他问题并且已经进行了充分分析,可以给三星工程师发送电子邮件:blesdk(这是at符号)samsung [dot c om)


嗨OneWorld,我已经解决了我的问题。我无法确定自己做错了什么。所以我决定创建一个新项目,逐一重新整合每个部分。之后,我添加了一些代码使其更加健壮。这基本上就是你在重新修订答案中提到的所有内容。确保关闭资源和Gatt API实例,并在必要时重新启动。还要确保按同步方式进行命令。感谢您的反馈和帮助愿望。 - nick_mn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接