如何获得蓝牙低功耗设备的 RSSI 值?

how to get the rssi value for a bluetooth low energy device ?

我是 android 编程的新手,正在尝试从 BLE 设备获取距离的 rssi 值 measurements.i 可以扫描并获取设备的名称和 mac 地址,但我我已经尝试过获取 rssi 的代码,但无法获得有用的结果,我也使用了 android 开发者网站上的示例。 有人可以给我正确的代码吗?

this.There 的两种解决方案是 4.0 和 5.0 设备与 search/scan BLE 设备的不同方法。您没有提到您使用的是哪一种,因此请添加以下两种解决方案。

1) 对于 Android 4.4 + 到 5.0,您必须通过 BluetoothAdapter's startLEScan 方法开始 LE 扫描,这会为您提供以下带有 RSSI 值的回调。查看方法签名。

onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord)

// 上面的第二个参数是 RSSI 值。

2) 对于 android 5.0+ 设备,您必须通过 BluetoothLeScanner class 的 startScan 方法开始扫描,如下所示

getBluetoothLeScanner().startScan

它有回调 onScanResult 来通知新的扫描设备,您可以使用下面的代码来获取 rssi。

public void onScanResult(int callbackType, ScanResult result) {
final int rssi = result.getRssi(); //RSSI value