私はすべてを見てきましたが、この質問に対する具体的な答えは見つかりませんでした。GUIを一切使用せずにADBから機内モードを切り替える方法を見つけたいと思っています。メニューを呼び出してからキーイベントを使用して機内モードをオンにする方法を見つけて使用しましたが、UI レイアウトの変更を考慮する必要があるため、この方法は一時的な解決策にすぎません。
意図的に機内モードのオンとオフを切り替える方法はないと思い始めていますが、何か情報があれば教えていただければ幸いです。
私はすべてを見てきましたが、この質問に対する具体的な答えは見つかりませんでした。GUIを一切使用せずにADBから機内モードを切り替える方法を見つけたいと思っています。メニューを呼び出してからキーイベントを使用して機内モードをオンにする方法を見つけて使用しましたが、UI レイアウトの変更を考慮する必要があるため、この方法は一時的な解決策にすぎません。
意図的に機内モードのオンとオフを切り替える方法はないと思い始めていますが、何か情報があれば教えていただければ幸いです。
まず、ここでのほとんどの回答で提案されているように、UI を盲目的にナビゲートするソリューションに依存することは決してありません。詳しくは下のメモで。
機内モードを有効にするために次のことを提案している G Murali の最初の回答が気に入っています。
adb shell settings put global airplane_mode_on 1
残念ながら、うまくいきません。機内モードアイコンの状態が変わるだけですが、すべての無線は引き続きアクティブです。
機内モードの状態が変更されたことをアプリケーションに通知するために、設定が変更された直後にインテントをブロードキャストするという非常に重要な部分が 1 つ欠けています。
機内モードを有効にするには、次のコマンドを使用します。
adb shell settings put global airplane_mode_on 1
adb shell am broadcast -a android.intent.action.AIRPLANE_MODE
機内モードを無効にするには、設定を 0 に変更し、インテントを再度ブロードキャストする必要があります。
adb shell settings put global airplane_mode_on 0
adb shell am broadcast -a android.intent.action.AIRPLANE_MODE
テスト済みで、Android 6 で動作しています。
多くの回答では、アクティビティを使用して機内モードの設定を開き、いくつかのキーの押下をシミュレートして UI をナビゲートすることを提案しています。それに依存することはお勧めしません。デバイスにわずかな遅延があり、[設定] ダイアログが開く前にキーが押されたり、予期しないダイアログがその間に表示されたりすることがあります。どちらの場合も、キーを押すと、意図しない、おそらく有害な何かが発生します。
また、さまざまなブランド、モデル、Android バージョンなどのデバイスで UI が異なる場合があります。Samsung Galaxy S4 (Android 6.0.1) でテストしましたが、そこでは機能しませんでした。これは、Samsung の UI とデフォルトの UI の違いによるものかもしれません。
設定操作方法は完全に安全でなければなりません。
ウィリアムの答えは、私にとって最も近いものでした-> Android 5.0 Lollipop。ただし、Settings アクティビティが完全に読み込まれる前に切り替えようとしていたため、切り替えられない場合がありました。
そこで、端末を 0.1 秒間スリープさせました。背中を叩いて設定を終了することを追加しました
adb shell am start -a android.settings.AIRPLANE_MODE_SETTINGS
adb shell input keyevent 19 ; sleep 0.1; adb shell input keyevent 23; sleep 0.3; adb shell input keyevent 4;
echo "Toggled airplane mode";
次のコマンドを使用して[設定] > [ワイヤレス ネットワーク] を起動し、機内モードを切り替えて ([戻る] を押して) 戻ります。
adb shell am start -a android.settings.AIRPLANE_MODE_SETTINGS & adb shell input keyevent 19 & adb shell input keyevent 23 & adb shell input keyevent 4
adb shell am start -a android.settings.AIRPLANE_MODE_SETTINGS ; adb shell input keyevent 19 ; adb shell input keyevent 23 ; adb shell input keyevent 4
Samsung Galaxy S (Android OS 2.3.3) でテスト済み。