如何通过亚行关闭Wifi?

Nef*_*iis 48 shell android adb android-wifi

我自动化wifi呼叫的测试程序,我想知道有没有办法通过adb关闭/开启wifi?

我想要禁用/启用wifi或杀死wifi呼叫(com.movi​​al.wificall)并重新启动它.

是否可以通过adb和shell命令执行此操作?

到目前为止,我发现:

android.net.wifi.WifiManager
setWifiEnabled(true/false)
Run Code Online (Sandbox Code Playgroud)

我只是不确定如何把它放在一起

Jar*_*ows 94

通过ADB使用"svc"(需要root):

启用:

adb shell su -c 'svc wifi enable'
Run Code Online (Sandbox Code Playgroud)

禁用:

adb shell su -c 'svc wifi disable'
Run Code Online (Sandbox Code Playgroud)

通过ADB使用关键事件:

adb shell am start -a android.intent.action.MAIN -n com.android.settings/.wifi.WifiSettings
adb shell input keyevent 20 & adb shell input keyevent 23
Run Code Online (Sandbox Code Playgroud)

第一行启动"wifi.WifiSettings"活动,打开WiFi设置页面.第二行模拟按键.

我在Droid X上测试了这两行.但是由于设置布局不同,上面的关键事件可能需要在其他设备中进行编辑.

约"的KeyEvents"更多信息这里.

  • 要使用这些关键事件在Android 5.0中切换wifi,您可能需要点击不同的事件然后回答.我会说`adb shell输入keyevent 19&adb shell输入keyevent 19&adb shell输入keyevent 23`(第一个也可以是20) - 如果你进入wifi设置屏幕时没有选择选项,这是有效的(如果有,你应该跳过第一个事件) (2认同)
  • 这里需要`su`就像@IvanMorgillo所说'adb shell su -c'svc wifi disable'` (2认同)

小智 47

我正在寻找相同的开启/关闭蓝牙,我发现了这个:

adb shell svc wifi enable|disable
Run Code Online (Sandbox Code Playgroud)

  • @Nefarii - 为此我需要将adb shell请求到设备.....然后请求su权限....然后我能够正确运行这些命令. (6认同)
  • 使用root用户Nexus 5,4.4.2:adb shell su -c"svc wifi disable" (5认同)
  • 我尝试在6种不同的设备上使用这个代码,从Gingerbread到JellyBean,根植于非root用户,我无法让它在任何一个上工作.您可以使用哪些设备进行操作? (3认同)
  • 确保您具有root权限以使其正常工作. (3认同)

Rus*_*lan 24

在非root设备上切换wifi的简单方法是使用简单的应用程序:

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        WifiManager wfm = (WifiManager) getSystemService(Context.WIFI_SERVICE);
        try {
            wfm.setWifiEnabled(Boolean.parseBoolean(getIntent().getStringExtra("wifi")));
        } catch (Exception e) {
        }
        System.exit(0);
    }
}
Run Code Online (Sandbox Code Playgroud)

AndroidManifest.xml中:

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
Run Code Online (Sandbox Code Playgroud)

ADB命令:

$ adb shell am start -n org.mytools.config/.MainActivity -e wifi true
$ adb shell am start -n org.mytools.config/.MainActivity -e wifi false
Run Code Online (Sandbox Code Playgroud)


wus*_*man 17

在 Android 11 和 12 上通过 cmd 命令(无需 root)

启用 Wi-Fi(打开):

adb shell cmd -w wifi set-wifi-enabled enabled 
Run Code Online (Sandbox Code Playgroud)

禁用 Wi-Fi(关闭):

adb shell cmd -w wifi set-wifi-enabled disabled
Run Code Online (Sandbox Code Playgroud)


Mus*_*sab 6

  1. 去位置 android/android-sdk/platform-tools
  2. shift+右键
  3. 在此处打开cmd并键入以下命令

    1. adb shell
    2. su
    3. svc wifi enable/disable
  4. 完成!!!!!


小智 5

adb shell "svc wifi enable"
Run Code Online (Sandbox Code Playgroud)

这行之有效,它无需打开相关选项即可在后台执行操作!!


Igo*_*mcy 5

我测试了这个命令:

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
Run Code Online (Sandbox Code Playgroud)

并且只适用于窗口的提示,可能是因为某些驱动程序

adb shell svc wifi enable|disable解决方案仅适用于 root 权限。