RxAndroidBle scanBleDevices(UUID ...)未触发

RxAndroidBle scanBleDevices(UUID...) not firing

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

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

您可能认为我的 UUID 是错误的,但这是我使用非常有状态的以前版本所做的一些替代实现 - 相同的 uuid,这有效:

mLeScanCallback 将被触发。

我正在使用 RxAndroidBle 版本 1.2.2 & 我的 phone 是 Nexus 6P android 版本 6.0.1

一些附加信息: 如果我使用 scanBleDevices(),没有参数,我可以通过检查制造数据中的某些内容来找到我想要的 rxBleScanResult,无论如何我都会这样做。但为了安全起见,我也想过滤 UUID。当我找到我想要的包 bytes[] 时,我尝试使用(已弃用)提取我的 UUID new UUIDUtil().extractUUIDs(rxBleScanResult.getScanRecord()),但这返回了一个空列表。为了更明确一点,当我使用老式的 mLeScanCallback 时,上面的 extractUUIDS 也会生成一个空列表。

感谢您的宝贵时间!

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