3

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

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

4

1 回答 1

4

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

现在我将不得不与固件公司联系以进行修复...

于 2018-01-18T06:44:48.843 回答