BLE,使用服务A或B或C扫描设备

时间:2018-12-07 15:02:17

标签: android bluetooth-lowenergy android-ble

我正在用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 个答案:

答案 0 :(得分:1)

也许对于每种服务,您都可以使用过滤器启动三项扫描?