Android BLE CALLBACK_TYPE_ALL_MATCHES无效

时间:2016-06-14 15:03:56

标签: android bluetooth scanning

我正试图从Android上的BLE设备获得多个回报。

我只得到一个回复​​。

这曾用于旧设备。

我的设备正在运行5.0.2。

这是我的代码:

    @TargetApi(Build.VERSION_CODES.M)
private void api21Scan(UUID[] uuids) {

    List<ScanFilter> scanFilters = new ArrayList<ScanFilter>();

    if (uuids != null) {
        for (int i = 0; i < uuids.length; ++i)
            scanFilters.add(new ScanFilter.Builder().setServiceUuid(ParcelUuid.fromString(uuids[i].toString())).build());
    }

    ScanSettings settings = new ScanSettings.Builder().setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES).build();
    ScanCallback scanCallback = new ScanCallback() {
        @Override
        public void onScanResult(int callbackType, ScanResult result)
        {
            mLeScanCallback.onLeScan(result.getDevice(), result.getRssi(), result.getScanRecord().getBytes());
        }

        @Override
        public void onBatchScanResults(List<ScanResult> results)
        {
            for (ScanResult sr : results)
            {
                mLeScanCallback.onLeScan(sr.getDevice(), sr.getRssi(), sr.getScanRecord().getBytes());
            }
        }
    };

    if (uuids != null)
        mBluetoothAdapter.getBluetoothLeScanner().startScan(scanFilters, settings, scanCallback);
    else
        mBluetoothAdapter.getBluetoothLeScanner().startScan(null, settings, scanCallback);
}

在我的应用程序正在扫描的LogCat中,我确实看到来自TAG的行的常量输出:bt-btm文本说:新地址:XX:XX:XX:XX:XX:XX我在那里看到我的设备一遍又一遍

为什么这些扫描没有进入我的应用程序?

我还有使用弃用的蓝牙适配器startLeScan的遗留代码,它也只返回设备的第一次扫描。

0 个答案:

没有答案