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

Android 如何通过adb测试wifi连接?,android,shell,automation,adb,android-wifi,Android,Shell,Automation,Adb,Android Wifi,Im通过adb自动关闭/打开wifi 我想根据测试用例禁用/启用wifi 到目前为止,我已经找到了很好的信息 但是,我想在执行以下命令之前测试连接 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 shel

Im通过adb自动关闭/打开wifi

我想根据测试用例禁用/启用wifi

到目前为止,我已经找到了很好的信息

但是,我想在执行以下命令之前测试连接

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 shell "svc wifi enable" 
下面的命令也会在屏幕上启动测试,但不会通过adb提供任何信息

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

这只会告诉您是否可以访问internet,但您可以:

adb shell ping www.google.com

下面的命令将为您提供internet状态和连接模式(蜂窝或Wi-Fi)


不完美,但您可以转储UI布局,然后像这样搜索开/关文本(bash):


要了解设备的Wifi状态,请执行以下操作:

adb shell dumpsys wifi

要知道它是否已启用,请执行以下操作:

adb shell dumpsys wifi | grep“Wi-Fi是”

要了解更详细的状态:

adb shell dumpsys wifi | grep“mNetworkInfo”

  • 如果连接到有效的网络,则会显示 “已连接/已连接”。它还显示所连接网络的名称
  • 如果wifi已启用,但尚未连接到网络,则会显示“已断开连接/扫描”
  • 如果禁用wifi,则显示“断开/断开连接”

  • 如果您试图确定WiFi是否打开,您可以运行
    adb shell settings get global WiFi_on
    ,如果打开,则返回1,如果关闭,则返回0

    如果您连接了多台设备,您可以运行
    adb-s[UDID_HERE]shell settings get global wifi_on
    来获取单个手机的wifi状态。要查找UDID,可以运行
    adb设备

    adb shell dumpsys wifi | sed -n '1p'
    
    比以前更快更安全

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

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

    ,但这在我的Sony Xperia设备上不起作用。此命令不提供任何信息。键入此命令后,您没有得到一些信息吗?没有。不过,我可以在设备上连接到internet。很抱歉,它不起作用,我将尝试查找其他设备。adb shell dumpsys wifi | grep“curState”将在状态1时给出以下3个OTP输出。“初始状态”:如果Wifi关闭。2.如果wifi已打开但已断开,则为“DisconnectedState”,3。“ConnectedState”:如果设备连接到网络。如果我在Java中使用这些命令,例如使用进程和运行时,这会起作用吗?
    adb shell dumpsys wifi | sed -n '1p'
    
    adb shell dumpsys wifi | grep "Wi-Fi is"