我目前正在为 Android 开发低功耗蓝牙接近配置文件,我偶然发现了一个关于 RSSI 的问题。
为了使接近配置文件工作,我必须每隔很短的时间使用已连接的设备接收 RSSI 数据。
当我做了一些研究时,我知道在设备发现期间可以获得蓝牙 RSSI。这对我不起作用,因为从设备在连接后不会做广告。
另一种方式是深入挖掘 HCI 级别并使用 BlueZ。似乎水平很低。有没有人有这方面的经验?
有人看过在 Android 上开发的接近配置文件吗?
我目前正在为 Android 开发低功耗蓝牙接近配置文件,我偶然发现了一个关于 RSSI 的问题。
为了使接近配置文件工作,我必须每隔很短的时间使用已连接的设备接收 RSSI 数据。
当我做了一些研究时,我知道在设备发现期间可以获得蓝牙 RSSI。这对我不起作用,因为从设备在连接后不会做广告。
另一种方式是深入挖掘 HCI 级别并使用 BlueZ。似乎水平很低。有没有人有这方面的经验?
有人看过在 Android 上开发的接近配置文件吗?
您可以在设备扫描回调中获取数据和 RSSI。请参阅BluetoothLeGatt 示例。
您可以在连接后一段时间后重复使用 readRemoteRssi() 方法。但它不会很好地工作。因为挂起标志错误。另一种方法是您可以启动和停止 blescan 并获取扫描设备的 rssi 值,这将是更好的方法,因为在 nexus 7 2013 设备中,一些三星设备不是过滤 ble 设备,它将返回 ble 设备。
final Runnable runnable = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
mBluetoothLeService.readRemoteRssi();
mHandler.postDelayed(this, 1000);
}
};
and add mHandler.postDelayed(runnable, 1000); Should work.