62

Wi-Fi 呼び出しのテスト手順を自動化しているのですが、adb 経由で Wi​​-Fi をオフ/オンにする方法はあるのでしょうか?

wifiを無効/有効にするか、wifi呼び出し(com.movi​​al.wificall)を終了して再起動したいと思います。

adb および shell コマンドを使用してこれをすべて行うことは可能ですか?

これまでのところ、私は見つけました:

android.net.wifi.WifiManager
setWifiEnabled(true/false)

どうやってまとめたらいいのかわからない

4

14 に答える 14

102

ADB を介して「svc」を使用する (root 化が必要):

有効:

adb shell su -c 'svc wifi enable'

無効にする:

adb shell su -c 'svc wifi disable'

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

最初の行は、WiFi 設定ページを開く "wifi.WifiSettings" アクティビティを起動します。2 行目は、キーの押下をシミュレートします。

これらの 2 行を Droid X でテストしました。ただし、上記のキー イベントは、設定レイアウトが異なるため、おそらく他のデバイスで編集する必要があります。

「キーイベント」の詳細については、こちらをご覧ください。

于 2012-04-06T02:48:20.147 に答える
68

Bluetoothのオン/オフを切り替えるために同じものを探していたところ、これが見つかりました:

adb shell svc wifi enable|disable
于 2012-07-13T14:41:00.817 に答える
26

ルート化されていないデバイスで Wi-Fi を切り替える簡単な方法は、シンプルなアプリを使用することです。

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);
    }
}

AndroidManifest.xml:

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

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
于 2012-09-14T08:18:47.743 に答える
13
adb shell "svc wifi enable"

これは機能し、関連するオプションを開かずにバックグラウンドでアクションを実行します!!

于 2013-05-09T05:29:11.963 に答える
7
  1. 場所に行くandroid/android-sdk/platform-tools
  2. shift+右クリック
  3. ここで cmd を開き、次のコマンドを入力します

    1. adb shell
    2. su
    3. svc wifi enable/disable
  4. 終わり!!!!!

于 2015-10-29T08:38:17.080 に答える
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

おそらくいくつかのドライバーが原因で、ウィンドウのプロンプトでのみ機能します

このadb shell svc wifi enable|disableソリューションは、ルート権限でのみ機能します。

于 2015-06-08T14:26:19.003 に答える
2

引用符で使用

元:adb shell "svc wifi enable"

これはうまくいきます:)

于 2013-01-24T14:02:38.993 に答える
0

Android テストでは、次のようにしています: InstrumentationRegistry.getInstrumentation().getUiAutomation().executeShellCommand("svc wifi enable ") InstrumentationRegistry.getInstrumentation().getUiAutomation().executeShellCommand("svc wifi disable ")

于 2020-10-22T07:27:37.020 に答える