我正在用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,并且扫描将返回运行其中一项或多项服务的设备? (我知道我可以搜索没有过滤器的所有设备,而在自己过滤掉它们之后,我试图避免这种情况)
答案 0 :(得分:1)
也许对于每种服务,您都可以使用过滤器启动三项扫描?