BLE, сканирующие устройства с сервисом A или B или C - PullRequest
0 голосов
/ 07 декабря 2018

Я выполняю сканирование с помощью BluetoothLeScanner для поиска устройств, на которых запущена одна из 3 служб.Я попытался добавить UUID сервисов в список ScanFilter, но, похоже, сканирование ищет устройства, на которых запущены 3 сервиса.

List<ScanFilter> filters = new ArrayList<>();
            ScanFilter.Builder sfBuilder = new ScanFilter.Builder();
            sfBuilder.setServiceUuid(ParcelUuid.fromString(Uuids.A));
            //sfBuilder.setServiceUuid(ParcelUuid.fromString(Uuids.B));
            //sfBuilder.setServiceUuid(ParcelUuid.fromString(Uuids.C));
            filters.add(sfBuilder.build());

            ScanSettings.Builder scanSettingsBuilder = new ScanSettings.Builder();

        mBluetoothAdapter.getBluetoothLeScanner().startScan(filters,scanSettingsBuilder.build(),mLeScanCallback);

Есть ли способ передать 3 UUID, и сканирование возвращаетсяустройства, на которых запущена 1 или более из этих служб?(я знаю, что могу искать все устройства без фильтров, и после этого сам их фильтрую, я пытался этого избежать)

1 Ответ

0 голосов
/ 07 декабря 2018

Может быть, вы можете запустить три сканирования с фильтром для каждой услуги?

...