RxAndroidBle scanBleDevices(UUID ...)没有触发

时间:2017-06-01 04:28:20

标签: rx-android rxandroidble

我在传递一个(有效的)UUID时使用scanBleDevices方法时遇到问题 - 订阅永远不会触发。目前我有一个使用通常的扫描,连接,读/写方法的工作原型,但我想更新我的RxAndroidBle语法,使事情更安全,更容易阅读。

这是我的RxAndroidBle实现 - 不工作/订阅永远不会触发:

enter image description here

你可能认为我的UUID是错误的,但是这里有一些替代实现,我使用一个非常有状态的先前版本 - 相同的uuid,这有用:

enter image description here

将触发mLeScanCallback。

我正在使用RxAndroidBle版本1.2.2&我的手机是Nexus 6P安卓版6.0.1

其他一些信息: 如果我使用scanBleDevices(),没有参数,我可以通过检查制造数据中的某些内容找到我想要的rxBleScanResult,无论如何我都会这样做。但我想过滤UUID也是安全的。当我找到我想要的包字节[]时,我尝试使用(不推荐使用)提取我的UUID new UUIDUtil().extractUUIDs(rxBleScanResult.getScanRecord()),但这返回了一个空列表。只是为了更好地解决问题,当我使用旧式的mLeScanCallback时,上面的extractUUIDS也会产生一个空列表。

谢谢你的时间!

1 个答案:

答案 0 :(得分:1)

这实际上是RxAndroidBle库中的一个错误。 正如人们可以在UUIDUtilhttps://github.com/Polidea/RxAndroidBle/commit/ee59e0ab9ae3c483f5c4f35c7729e9fc2068ee21#diff-c7944d4c01c56adf4e6c67c7f7f737e8)中看到的那样 - 它负责从蓝牙广告中提取服务UUID - 它缺少32位UUID。该修补程序已添加到刚发布的版本1.2.3中。