我开发了一个应用程序,可以扫描附近的设备(周围有多种信标).
我正在使用带有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或Oxygen)过滤掉-与旧版本无关.
现在,我必须与固件公司联系以寻求修复…