我开发了一款可以扫描附近设备的应用程序(周围有多种信标)。 我正在使用带有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版本中的错误吗? 我应该添加某种标志来获取非标准数据包吗?
任何想法都会非常感激。 感谢。
答案 0 :(得分:4)
在调查每个信标发送的数据包之后,我发现其中一个自定义信标发送了一个数据长度错误字节的数据包。 这导致数据包被OS 8(Android OR Oxygen)过滤掉 - 与旧版本无关。
现在我必须和固件公司谈谈修复......