Android scanfilter 的低功耗蓝牙扫描问题
Android Bluetooth Low Energy Scanning Issues with scanfilter
当我尝试在棒棒糖的 BleScan 中使用 ScanFilter 时,它没有扫描设备(仅当我通过 ScanFilter 列表时)。如果我只传递一个 UUID,它工作正常。但是在 Multiple 的情况下它不起作用..
ScanSettings settings = new ScanSettings.Builder().setScanMode(ScanSettings.SCAN_MODE_BALANCED).build();
if (getBluetoothStatus()) {
mBluetoothLeScanner = mBluetoothAdapter.getBluetoothLeScanner();
List<ScanFilter> mList=scanFilters(serviceUUIDs);
mBluetoothLeScanner.startScan(mList, settings, mScanCallback);
}
private List<ScanFilter> scanFilters(UUID[] serviceUUIDs) {
List<ScanFilter> list = new ArrayList<>();
for (int i = 0; i <serviceUUIDs.length; i++) {
ScanFilter filter = new ScanFilter.Builder().setServiceUuid(ParcelUuid.fromString(serviceUUIDs[0].toString())).build();
list.add(filter);
}
return list;
}
那是因为你没有使用变量遍历元素。
试试这个:
ScanFilter filter = new ScanFilter.Builder().setServiceUuid(ParcelUuid.fromString(serviceUUIDs[i].toString())).build();
当我尝试在棒棒糖的 BleScan 中使用 ScanFilter 时,它没有扫描设备(仅当我通过 ScanFilter 列表时)。如果我只传递一个 UUID,它工作正常。但是在 Multiple 的情况下它不起作用..
ScanSettings settings = new ScanSettings.Builder().setScanMode(ScanSettings.SCAN_MODE_BALANCED).build();
if (getBluetoothStatus()) {
mBluetoothLeScanner = mBluetoothAdapter.getBluetoothLeScanner();
List<ScanFilter> mList=scanFilters(serviceUUIDs);
mBluetoothLeScanner.startScan(mList, settings, mScanCallback);
}
private List<ScanFilter> scanFilters(UUID[] serviceUUIDs) {
List<ScanFilter> list = new ArrayList<>();
for (int i = 0; i <serviceUUIDs.length; i++) {
ScanFilter filter = new ScanFilter.Builder().setServiceUuid(ParcelUuid.fromString(serviceUUIDs[0].toString())).build();
list.add(filter);
}
return list;
}
那是因为你没有使用变量遍历元素。
试试这个:
ScanFilter filter = new ScanFilter.Builder().setServiceUuid(ParcelUuid.fromString(serviceUUIDs[i].toString())).build();