我正在使用android BLE(蓝牙低功耗).我在使用startLeScan(UUID[] serviceUuids, BluetoothAdapter.LeScanCallback callback)
方法扫描BLE设备时遇到了麻烦,
但startLeScan(BluetoothAdapter.LeScanCallback callback)
工作正常.
当我使用过滤器扫描特定的serviceUUID时,回调没有执行.我正在测试三星galaxy s6.
我想知道这个问题是特定于设备还是扫描函数中存在一些错误.
我很确定它不是特定于设备的.首先,正如IshArt所提到的,你应该使用Android 5.0中的startScan.
startScan(Listfilters, ScanSettings settings, ScanCallback callback)
根据我的经验,如果您使用MAC地址,但Scanfilters的实现工作正常,但其他过滤器设置参数存在问题:
ScanFilter filter = new ScanFilter.Builder().setDeviceAddress(deviceMacAddress).build(); filters.add(filter);
如果这不是您的选择,您也可以实现自己的过滤器.如果将startScan()的过滤器列表保留为空,则忽略所有过滤并接收所有内容.然后在回调中,您可以编写自己的方法来检查结果是否符合您的要求.