android 如何通过adb测试wifi连接?

r1zhe5dt  于 2023-02-14  发布在  Android
关注(0)|答案(7)|浏览(683)

我通过亚行自动关闭/打开wifi。
我想根据测试用例禁用/启用WiFi
到目前为止,我已经找到了好信息here
但是,我希望在执行以下命令之前测试连接

adb shell am start -a android.intent.action.MAIN -n         com.android.settings/.wifi.WifiSettings adb shell input keyevent 19 & adb shell input keyevent 19 & adb shell input keyevent 23

上面的命令禁用wifi如果启用,启用wifi如果禁用。我想先测试连接,并采取行动,如果需要的话。我想知道是否有一种方法来做使用adb命令。这可以通过编程实现,但我希望它是通过adb使它更可靠。
此外,以下命令仅在设备具有root权限时才有效

adb shell "svc wifi enable"

同样,以下命令在屏幕上启动测试,但未通过adb提供信息

adb shell am start -n com.android.settings/.wifi.WifiStatusTest
34gzjxbg

34gzjxbg1#

要了解设备Wifi状态的所有信息:

adb shell dumpsys wifi

要了解它是否已启用:

adb shell dumpsys wifi | grep "Wi-Fi is"

要了解更详细的状态:

adb shell dumpsys wifi | grep "mNetworkInfo"

1.如果连接到有效网络,则显示***“CONNECTED/CONNECTED”***。它还显示连接网络的名称。
1.如果WiFi已启用但尚未连接到网络,则显示***“已断开连接/正在扫描”***。
1.如果禁用WiFi,则显示***“已断开连接/已断开连接”***。

20jt8wwn

20jt8wwn2#

下面的命令将为您提供互联网状态和连接模式(Hive或Wi-Fi)

adb shell dumpsys connectivity
tpxzln5u

tpxzln5u3#

如果你试图确定WiFi是否打开,你可以运行adb shell settings get global wifi_on,如果打开,返回1,如果关闭,返回0。
如果您连接了多个设备,您可以运行adb -s [UDID_HERE] shell settings get global wifi_on来获取单个手机的WiFi状态。要查找UDID,您可以运行adb devices

jhkqcmku

jhkqcmku4#

这只会告诉你是否有互联网接入,但你可以做:

adb shell ping www.google.com
wgeznvg7

wgeznvg75#

adb shell dumpsys wifi | sed -n '1p'

更快更安全

adb shell dumpsys wifi | grep "Wi-Fi is"

因为dumpsys wifi的输出包含可能已被其他应用程序污染的系统日志

k10s72fa

k10s72fa6#

Atish's answer在Android 11/R之前运行良好。对于此操作系统以后的版本,我建议使用Abhishek的建议:

adb shell dumpsys wifi | grep "curState=ConnectedState"
64jmpszr

64jmpszr7#

虽然不是很完美,但是你可以转储UI布局,然后搜索ON/OFF文本,如下所示(bash):

adb pull $(adb shell uiautomator dump | grep -o '[^ ]*.xml') ui.xml
grep 'text="OFF"' ui.xml
if [ $? == 0 ]; then
  # Turn WIFI on
fi

相关问题