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

时间:2016-02-08 10:04:29

标签: android bluetooth-lowenergy

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

我使用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

1 个答案:

答案 0 :(得分:7)

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

bluetoothAdapter.isOffloadedFilteringSupported();

bluetoothAdapter.isOffloadedScanBatchingSupported();

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

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