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

时间:2015-03-31 09:56:04

标签: android bluetooth bluetooth-lowenergy rssi

我是Android编程的新手,并尝试从远程测量的BLE设备获取rssi值。我可以扫描并获取设备的名称和mac地址,但我已经尝试过代码来获取rssi但是可以& #39;得到有用的结果,我也使用Android开发者网站上的示例。 有人可以给我正确的代码吗?

1 个答案:

答案 0 :(得分:16)

两种解决方案。对于4.0和5.0设备,可以使用不同的方法来搜索/扫描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类的startScan方法开始扫描,如下所示

getBluetoothLeScanner().startScan

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

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