Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android BLE,使用服务A、B或C扫描设备_Android_Bluetooth Lowenergy_Android Ble - Fatal编程技术网

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字符串:)