如何获得蓝牙低功耗设备的 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
我是 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