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