代码之家  ›  专栏  ›  技术社区  ›  Thought

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

  •  0
  • Thought  · 技术社区  · 6 年前

    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 回复  |  直到 6 年前
        1
  •  1
  •   Emil    6 年前

    也许你可以用一个过滤器对每个服务进行三次扫描?