安卓 4.3 BLE
Posted
技术标签:
【中文标题】安卓 4.3 BLE【英文标题】:Android 4.3 BLE 【发布时间】:2013-10-07 23:03:55 【问题描述】:有人在使用 Nexus 4 连接到 BLE 设备时遇到问题吗?我正在使用基于 TI CC2540 的 BLE 模块。我能够连接到 BLE 设备、发现服务、写入特征以及写入描述符以获取通知。然后突然之间我无法再连接到设备了。我取消了设备与手机的配对,也恢复了出厂设置,但似乎没有任何效果。
我也在关注其他人在这篇帖子中所做的事情android 4.3 Bluetooth Low Energy unstable
我禁用了 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
这似乎很奇怪,因为我将回调交给了非空的连接调用。有人有什么想法吗?
【问题讨论】:
【参考方案1】:查看我对Android 4.3 Bluetooth Low Energy unstable 的重新修改答案,我在连接时添加了我使用 Samsng Galaxy S3 的经验。也许这对你有用。
如果你有其他问题并且分析得很好,可以给三星工程师写邮件:blesdk (this is the at sign) samsung [dot c om )
【讨论】:
嗨,OneWorld,我能够早早地解决我的问题。我无法确定我做错了什么。所以我决定创建一个新项目,并开始将一些东西一件一件地重新组合起来。在我这样做之后,我添加了更多代码以使其更健壮。这几乎就是您在重新编写的答案中提到的所有内容。确保关闭 Gatt API 的资源和实例,并在必要时重新启动。还要确保以同步性质继续执行命令。感谢您的反馈并希望提供帮助。以上是关于安卓 4.3 BLE的主要内容,如果未能解决你的问题,请参考以下文章