我们正在过滤我们对多个 MAC 地址的 BLE 扫描
List<ScanFilter> filters = new ArrayList<ScanFilter>();
for(String addr : mBleAddrs) {
if(BluetoothAdapter.checkBluetoothAddress(addr)) {
Log.d(TAG, "VALID addr: " + addr);
ScanFilter deviceFilter = new ScanFilter.Builder()
.setDeviceAddress(addr)
.build();
filters.add(deviceFilter);
} else {
Log.d(TAG, "INVALID addr: " + addr);
}
}
mBluetoothLeScanner.startScan(filters, settingsBuilder.build(), mScanCallback);
在 Android 7 和 8 设备上运行它时,一切正常,但在带有 Android 版本 9 的 Google Pixel XL 上运行时,它根本不会产生任何结果。如果我删除过滤器,我会在该手机上获得结果。任何人都知道如何解决这个问题,或者某些手机根本不支持某些类型的过滤?
编辑要清楚,我们在屏幕打开的情况下在前台扫描!