Android 实时测量蓝牙信号强度(RSSI)
我想能够在一个房间里走动,手里拿着一个android设备,点击一个显示房间1的按钮,然后开始发现我周围的蓝牙设备并获取它们的RSSI值。然后我想将此信息保存为文本文件。然后对不同的房间重复上述步骤 这是最简单的部分 我遇到的问题是找到如何(或者如果可能的话)这样做,但是设置了一个计时器,这样发现过程就不一定会自己完成,但是我可以计时它自己反复启动和停止发现,以获得新的值,直到我完成为止。大多数接近的值通常出现在大约5秒钟之内,这对于我目前正在尝试做的事情来说已经足够令人满意了。 我发现了一个问题,但并没有答案 更清楚一点,一个简单的例子是:Android 实时测量蓝牙信号强度(RSSI),android,timer,bluetooth,refresh,discovery,Android,Timer,Bluetooth,Refresh,Discovery,我想能够在一个房间里走动,手里拿着一个android设备,点击一个显示房间1的按钮,然后开始发现我周围的蓝牙设备并获取它们的RSSI值。然后我想将此信息保存为文本文件。然后对不同的房间重复上述步骤 这是最简单的部分 我遇到的问题是找到如何(或者如果可能的话)这样做,但是设置了一个计时器,这样发现过程就不一定会自己完成,但是我可以计时它自己反复启动和停止发现,以获得新的值,直到我完成为止。大多数接近的值通常出现在大约5秒钟之内,这对于我目前正在尝试做的事情来说已经足够令人满意了。 我发现了一个问题
- 按“房间1”按钮
- 开始发现
- 5秒钟后,停止查找并重新启动
- 反复这样做直到
- 按下“停止”按钮
谢谢您可以使用以下内容:
private void start() {
mBluetoothAdapter.startDiscovery();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
if (mBluetoothAdapter.isDiscovering())
mBluetoothAdapter.cancelDiscovery();
if (repeat) start();
} }, 5000);
}
通过停止按钮将变量repeat设置为false。开始按钮将repeat设置为true并调用start()
据我所知,bluetooth discovery无限期运行,因此您无需停止并重新启动它。您目前如何确定您的发现?BluetoothChat示例建议发现无限期运行,您无论如何都需要实现超时。您可以使用线程或处理程序来执行此操作。很抱歉,延迟了。这很有效魅力。不过,我确实需要停止并开始发现,因为我需要记录每次扫描中发现的值。谢谢!