2013-11-21 67 views
5

私たちは次の操作を行うことができることを知っている:ADBを使用して飛行機モードがオンになっているかどうかを確認しますか?

adb shell am start -a android.settings.AIRPLANE_MODE_SETTINGS 
adb shell input keyevent 19 ; adb shell input keyevent 23 

をAndroidデバイスに/機内モードをオン・オフします。

しかし、現在ADBを通じて飛行機モードがオンになっているかどうかを確認する方法はありますか?

上記の2行のコードは、飛行機モードのオン/オフを知らずに飛行機モードを切り替えるため、私はこれを求めています。しかし、私は飛行機モードが本当にADBを通じてオン/オフになっていることを確認する方法が必要です。

私を助けてください!事前に

おかげ

+0

Foをraの特定のデバイスでは、両方の条件で 'adb shell getprop'の出力にdiffを実行することで有効な変更があるようです(ネットワークキャリア名など)。しかし、すべてのデバイス/バージョン間で一般的なルールを書くのは難しいかもしれません。しかし、あなたがADBに話しているので、限られた数のデバイスで実行される自動テストについて話しているかもしれません。そのためには実用的なチェックの実行可能なセットを判断することができます。飛行機モードがアクティブではないにもかかわらず、デバイスがなんらかの理由で瞬時にサービスを見つけられなかった場合、あなたは誤った報告を受ける可能性があります。 –

+0

私はアレックスの答えのコマンドが飛行機モードの設定値(ボタン状態)を変更するだけで実際の効果はない(ネットワークはまだ有効)ので、代わりにアナンドの答えを受け入れるべきだと言います。設定変更後のインテントをブロードキャストして、デバイスの飛行機モードボタンを手動でタップするのと同じ効果を持たなければなりません。 –

答えて

13

adb shell settings get global airplane_mode_on戻りairplane_modeオフとairplane_modeのため1ため0

+0

ありがとうございました!簡単な質問ですが、このadbシェル設定の詳細はどこで知ることができますか?私が照会できる他のものは何ですか? wifiがオンになっているかどうかを確認するために「adbシェル設定get global wifi_on」のようなことをすることはできますか?これに関するWeb上のドキュメントはありますか?申し訳ありませんが、これは私が見ていない本当に明白な答えがある場合。 – JJackJi

+2

'settings get'コマンドは、「設定」コンテンツプロバイダのクエリ用の単純なJavaラッパーです。いつものようにアンドロイドには最高のドキュメントがソースコードにありますhttps://android.googlesource.com/platform/frameworks/base/+/master/cmds/settings/src/com/android/commands/settings/ SettingsCmd.java –

16

adbシェルの実行後に次のコマンドを使用できます。

ターン:
adb shell settings put global airplane_mode_on 1
adb shell am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true

はオフに
adb shell settings put global airplane_mode_on 0
adb shell am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false

これは、機内モードを行いますON/OFF

+0

'--ez'パラメータを省略できるように見えるので、ブロードキャストコマンドは有効化と無効化の両方で同じになります:' adb shell am broadcast -a android.intent.action.AIRPLANE_MODE'。どのように正確に動作するのか少し説明できますか?私はなぜ両方のコマンドが必要なのですか?最初のものは飛行機モードの設定を変更するだけですが、ネットワークには実際の影響がなく、残りの2つは作業を行います。 –

関連する問題