Сканирование OLE (8.1.0) BLE не работает с фильтрами - PullRequest
0 голосов
/ 08 ноября 2018

Когда я инициализирую сканирование BLE, я могу успешно видеть все устройства, когда использую следующий код (на переднем плане, с Nokia 1 под управлением Android 8.1.0):

ScanSettings settings = (new ScanSettings.Builder().setScanMode(ScanSettings.SCAN_MODE_LOW_POWER)).build();

List<ScanFilter> filters = new ArrayList<>();
ScanFilter filter = new ScanFilter.Builder().build();
filters.add(filter);

BluetoothManager bluetoothManager =
        (BluetoothManager) getApplicationContext().getSystemService(Context.BLUETOOTH_SERVICE);
BluetoothAdapter bluetoothAdapter = bluetoothManager.getAdapter();
Intent intent = new Intent(getApplicationContext(), PendingIntentScanReceiver.class);
intent.putExtra("o-scan", true);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(),
        0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
bluetoothAdapter.getBluetoothLeScanner().startScan(filters, settings, pendingIntent);

Но как только я изменю список фильтров (например, строки 2 - 4) следующим образом:

ScanFilter filter = new ScanFilter.Builder()
        .setDeviceAddress("54:6C:0E:20:E6:1B")

        // or instead of setDeviceAddress trying this:
        .setServiceUuid(ParcelUuid.fromString("0000a1b0-0000-1000-8000-00805f9b34fb"))
        .build();
filters.add(filter);

Я больше не могу видеть что-либо . Есть мысли о том, что здесь может происходить?

...