BLE 扫描 android 8.0

BLE Scan on android 8.0

我开发了一个应用程序,可以扫描附近的设备(周围有多种信标)。 我正在使用带有 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 版本中的错误吗? 我应该添加某种标志来获取非标准数据包吗?

任何想法将不胜感激。 谢谢

在调查了每个信标发送的数据包后,我发现其中一个自定义信标发送了一个数据长度字节错误的数据包。 这导致数据包被 OS 8(Android 或氧气)过滤掉 - 对旧版本无关紧要。

现在我必须与固件公司联系以进行修复...