4

我目前正在为 Android 开发低功耗蓝牙接近配置文件,我偶然发现了一个关于 RSSI 的问题。

为了使接近配置文件工作,我必须每隔很短的时间使用已连接的设备接收 RSSI 数据。

当我做了一些研究时,我知道在设备发现期间可以获得蓝牙 RSSI。这对我不起作用,因为从设备在连接后不会做广告。

另一种方式是深入挖掘 HCI 级别并使用 BlueZ。似乎水平很低。有没有人有这方面的经验?

有人看过在 Android 上开发的接近配置文件吗?

4

3 回答 3

1

您可以在设备扫描回调中获取数据和 RSSI。请参阅BluetoothLeGatt 示例

于 2014-08-22T05:49:05.360 回答
1

您可以在连接后一段时间后重复使用 readRemoteRssi() 方法。但它不会很好地工作。因为挂起标志错误。另一种方法是您可以启动和停止 blescan 并获取扫描设备的 rssi 值,这将是更好的方法,因为在 nexus 7 2013 设备中,一些三星设备不是过滤 ble 设备,它将返回 ble 设备。

于 2014-08-23T17:33:09.543 回答
0
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.
于 2015-03-31T10:56:49.547 回答