BLE,具有服务A或B或C的扫描设备



我正在使用BluetoothLeScanner执行扫描,以搜索运行三种服务之一的设备。我已经尝试将服务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,然后扫描返回运行其中一个或多个服务的设备?(我知道我可以在没有过滤器的情况下搜索所有设备,在那之后我自己过滤了它们,我试图避免这种情况(

也许您可以为每个服务启动三次带有过滤器的扫描?

最新更新