从终端的Android驱动程序获取wifi连接的信号强度

时间:2014-12-07 04:09:38

标签: android linux wifi adb

我可以使用以下命令获取当前wifi网络的RSSI,但我需要一个响应更快的命令,这个命令太慢了:

dumpsys wifi | grep ", RSSI"

有没有更好的方法从android linux终端获得信号强度?

我也在java中尝试过WifiInfo.getRssi(),它在样本之间有大约2秒的延迟。我需要大约200ms。

1 个答案:

答案 0 :(得分:0)

使用以下命令将rssi更新间隔更改为200 ms。您可能需要root特权。

adb shell cmd wifi set-poll-rssi-interval-msecs 200

我也在Java中尝试了WifiInfo.getRssi(),它在样本之间有大约2秒的延迟。

是的,默认更新间隔为3000毫秒。


您可以在frameworks/opt/net/wifi/service/java/com/android/server/wifi/ClientModeImpl.java中找到实现。简而言之,它通过wificond进程更新wifi状态,该进程通过标准nl80211命令与wi-fi驱动程序进行通信。更新时间间隔是专用字段mPollRssiIntervalMsecs。该类通过cmd命令公开此字段(请参见WifiShellCommand类)。