BLE Scan on android 8.0

时间:2018-01-16 17:01:32

标签: android bluetooth bluetooth-lowenergy android-8.0-oreo oneplusthree

我开发了一款可以扫描附近设备的应用程序(周围有多种信标)。 我正在使用带有CALLBACK_TYPE_ALL_MATCHES的BluetoothLeScanner和一个空的ScanFilter阵列进行扫描(因为我想获得所有附近设备的回调)。

我的应用程序在我的OnePlus 5设备Android 7.x(以及其他一些设备)上运行得很好 - 直到我在我的设备上升级到Android 8.0 OTA。

我不确定它是Android 8.0问题还是OnePlus Oxygen bug,但我面对以下情况: 在我周围有许多种信标,一些宣传标准的ibeacon / eddystone数据包,另一些则宣传自定义数据包。

我只接收标准ibeacon / eddystone数据包的回调(onScanResult)而不是自定义数据包。 在升级之前,我得到了所有类型数据包的回调 - 标准和非标准。

在Android 8.0中收到的ble数据包的下划线过滤器中有什么变化吗? 这是最新的Oxygen OS版本中的错误吗? 我应该添加某种标志来获取非标准数据包吗?

任何想法都会非常感激。 感谢。

1 个答案:

答案 0 :(得分:4)

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

现在我必须和固件公司谈谈修复......