如何在android程序中实时获取路由器的wifi信号强度?

时间:2014-04-29 10:33:35

标签: android wifi router

在wifimanger中使用BroadcastReceiver(),我能够每4-5秒获得一次RSSI强度。 但我需要它实时。 我可以实时获得力量吗?

2 个答案:

答案 0 :(得分:0)

您最好的选择是使用WifiManager getScanResults开始扫描:

final WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
List<ScanResult> results = wifi.getScanResults();

但请注意,它会返回最新结果,该结果可能会在4-5秒之前提早。但至少你获得了最新的结果。

修改

由于没有连续扫描,您无法实时获得信号强度结果。

如果必须,您可以使用startScan启动扫描,但是您必须等待扫描完成后发送的异步事件

答案 1 :(得分:0)

我试图做同样的事情,我找到了一个不错的解决方案。

如果您使用异步任务并运行在每次迭代时获得更新RSSI的循环,则可以使用onProgressUpdate()更新UI。

我在循环中添加了Thread.sleep(500),因此每半秒更新一次。

如果您有更多问题,我很乐意提供帮助。