Android蓝牙低功耗扫描问题与扫描过滤器

5

当我在Lollipop中尝试使用BleScan中的ScanFilter时,如果我只传递一个UUID,它可以正常扫描设备。但是,如果我传递多个UUID,则无法正常工作(仅在传递ScanFilter列表时才能正常工作)。

 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;
            }

1
尝试这个:ScanFilter filter = new ScanFilter.Builder().setServiceUuid(ParcelUuid.fromString(serviceUUIDs[i].toString())).build(); - David
please accept as it an asnwer - David
1个回答

9
那是因为你没有使用变量来遍历元素。
试试这个:
ScanFilter filter = new ScanFilter.Builder().setServiceUuid(ParcelUuid.fromString(serviceUUIDs[i].toStri‌​ng())).build(); 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接