【问题标题】:how to get the rssi value for a bluetooth low energy device ?如何获得蓝牙低功耗设备的 rssi 值?
【发布时间】:2015-06-04 14:54:27
【问题描述】:

我是 android 编程新手,并试图从 BLE 设备获取 rssi 值以进行距离测量。我可以扫描并获取设备的名称和 mac 地址,但我尝试了获取 rssi 的代码但不能得到有用的结果,我也使用了 android 开发者网站上的示例。 有人可以给我正确的代码吗?

【问题讨论】:

  • 能否分享一下工作代码。请。谢谢。

标签: android bluetooth bluetooth-lowenergy rssi


【解决方案1】:

对此有两种解决方案。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

【讨论】:

  • 我正在使用 android 4.3 ,我使用了第一个解决方案,它可能工作。谢谢!
  • @alaa,RSSI 进来 - 值,从 -100 到 0。如果它适合你,你可以接受答案。
  • @AAnkit 你能分享一个工作代码吗?谢谢。
猜你喜欢
  • 1970-01-01
  • 2012-11-22
  • 2016-01-06
  • 2016-01-11
  • 2013-11-17
  • 1970-01-01
  • 2013-03-07
  • 2016-10-09
  • 2016-06-29
相关资源
最近更新 更多