1

我的应用程序在三星 S6 和 Nexus 5 以及 Nexus 7 上运行良好,Android 5,但是,它不能在 Nexus 5x 上运行 Android 6。


布尔成功 = mBluetoothGatt.writeCharacteristic(特征);


我的应用程序将多次发送此命令以设置或从硬件获取数据,但是,在发送一个或两个命令后它可能会返回 false。(第一个命令将返回 true)

Android Marshmallow 是否会改变 BLE 中的某些内容?

4

1 回答 1

3

造成这种情况的一个常见原因是,如果您尝试连续进行多次写入或读取。您必须等待上一次读取或写入的结果才能执行下一次读取或写入。对于非平凡的应用程序,这通常意味着设置一个作业队列。

如果这不是原因,那么如果您在 IDE 中附加 Android 源代码,您可能能够BluetoothGatt.writeCharacteristic()在调试器中单步执行并查看它返回 false 的确切位置。我正在查看的源有 6 个返回错误的地方,主要是“早期出局”,所以它可能是其中任何一个。

于 2015-12-14T16:36:06.013 回答