我开发了一个应用程序,可以扫描附近的设备(周围有多种信标)。
我正在使用带有 CALLBACK_TYPE_ALL_MATCHES 和一个空 ScanFilter 数组的 BluetoothLeScanner 进行扫描(因为我想获取附近所有设备的回调)。
我的应用在我的 OnePlus 5 设备 Android 7.x(以及其他一些设备)上运行良好 - 直到我在我的设备上升级到 android 8.0 OTA。
我不确定是 Android 8.0 问题还是 OnePlus Oxygen 错误,但我面临以下情况:
我周围有很多种信标,一些宣传标准的 ibeacon/eddystone 数据包,而另一些则宣传自定义数据包。
我只收到标准 ibeacon/eddystone 数据包的回调 (onScanResult),而不是自定义数据包。
在升级之前,我得到了所有类型数据包的回调 - 标准和非标准。
在 android 8.0 中接收到的 ble 数据包的下划线过滤器是否发生了变化?
这是最新的 Oxygen OS 版本中的错误吗?
我应该添加某种标志来获取非标准数据包吗?
任何想法将不胜感激。
谢谢。
Best Answer-推荐答案 strong>
在调查了每个信标发送的数据包后,我发现其中一个自定义信标发送了一个数据长度字节错误的数据包。
这导致数据包被 OS 8(Android 或 Oxygen)过滤掉 - 与旧版本无关。
现在我必须与固件公司联系以进行修复...
关于android - Android 8.0 上的 BLE 扫描,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/48286314/
|