Android BLE,使用服务A、B或C扫描设备
我正在使用Android BLE,使用服务A、B或C扫描设备,android,bluetooth-lowenergy,android-ble,Android,Bluetooth Lowenergy,Android Ble,我正在使用BluetoothLeScanner执行扫描,以搜索运行三种服务之一的设备。 我曾尝试将服务UUID添加到ScanFilter列表中,但扫描似乎会搜索运行这3项服务的设备 List<ScanFilter> filters = new ArrayList<>(); ScanFilter.Builder sfBuilder = new ScanFilter.Builder(); sfBuilder.setService
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);
List filters=new ArrayList();
ScanFilter.Builder sfBuilder=新的ScanFilter.Builder();
setServiceUuid(parceluid.fromString(Uuids.A));
//setServiceUuid(parceluid.fromString(Uuids.B));
//setServiceUuid(parceluid.fromString(Uuids.C));
filters.add(sfBuilder.build());
ScanSettings.Builder ScanSettings Builder=新的ScanSettings.Builder();
mBluetoothAdapter.getBluetoothLeScanner().startScan(过滤器、扫描设置builder.build()、mLeScanCallback);
是否有方法通过3个UUID,扫描返回运行1个或多个服务的设备?(我知道我可以搜索所有没有过滤器的设备,然后我自己过滤它们,我试图避免这种情况)也许你可以用过滤器为每个服务启动三次扫描?如果这三个服务的UUID中有一个公共部分,你可以使用掩码从搜索中排除不常见的位。请发布搜索到的uuids字符串:)