Мы фильтруем наше сканирование BLE по ряду MAC-адресов по
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 все работает нормально, но при запуске на Google Pixel XL с версией Android9 это не дает никаких результатов вообще.Если я уберу фильтрацию, я получу результаты на этом телефоне.Кто-нибудь знает, как решить эту проблему, или некоторые телефоны просто не поддерживают определенные типы фильтрации?
РЕДАКТИРОВАТЬ Чтобы было ясно, мы сканируем на переднем плане с включенным экраном!