如何在 Nexus 5 上修复 Android BLE SCAN_FAILED_FEATURE_UNSUPPORTED?

How to fix Android BLE SCAN_FAILED_FEATURE_UNSUPPORTED on Nexus 5?

在 android 上发现 BLE 设备时,我在某些设备(LG 更详细)上遇到此 onScanFailed 错误代码。该代码在其他设备上按预期工作。我该如何解决?

我用BLE API 21+和下面的代码发现:

ScanSettings scanSettings = new ScanSettings.Builder()
            .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
            .setReportDelay(discoveryDelay)
            .build();

以下是完整的来源: https://github.com/4ntoine/protobuf-ble-rpc/blob/hi-p/android/client/src/main/java/com/googlecode/protobuf/blerpc/BleRpcConnectionFactory.java#L362

有些设备不支持新 LE API 的所有功能。这些功能是特定于硬件的,由制造商启用。最好的方法是在构建过滤器和设置之前检查支持的功能。

bluetoothAdapter.isOffloadedFilteringSupported();

bluetoothAdapter.isOffloadedScanBatchingSupported();

我没有发现在 OffloadedFiltering 不受支持时发布过滤器有任何问题。

如果 OffloadedScanBatching 不受支持,则不应设置报告延迟。尝试设置 0 以外的任何报告延迟都会导致错误。