我通过adb自动关闭/打开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来完成,以使其更可靠。
此命令仅在设备已植根时才起作用
adb shell "svc wifi enable"
此外,命令会在屏幕上启动测试,但不会通过adb提供任何信息
adb shell am start -n com.android.settings/.wifi.WifiStatusTest
答案 0 :(得分:9)
下面的命令将为您提供互联网状态和连接模式(手机或Wi-Fi)
adb shell dumpsys connectivity
答案 1 :(得分:7)
了解有关设备Wifi状态的所有信息:
adb shell dumpsys wifi
只知道它是否已启用:
adb shell dumpsys wifi | grep“Wi-Fi is”
了解更详细的状态:
adb shell dumpsys wifi | grep“mNetworkInfo”
答案 2 :(得分:2)
如果您要确定WiFi是否已打开,可以运行adb shell settings get global wifi_on
,如果打开则返回1,如果关闭则返回0。
如果您连接了多个设备,则可以运行adb -s [UDID_HERE] shell settings get global wifi_on
来获取单个电话的WiFi状态。要查找UDID,可以运行adb devices
。
答案 3 :(得分:0)
这只会告诉您是否有互联网访问权限,但您可以这样做:
adb shell ping www.google.com
答案 4 :(得分:0)
adb shell dumpsys wifi | sed -n '1p'
比
更快,更安全adb shell dumpsys wifi | grep "Wi-Fi is"
因为'dumpsys wifi'的输出包含可能已被其他应用程序污染的系统日志
答案 5 :(得分:-1)
不完美,但您可以转储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