2013-11-21 11 views
5

So che siamo in grado di effettuare le seguenti operazioni:Usa ADB per controllare se la modalità aereo è attivata?

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

per attivare/disattivare la modalità aereo sul dispositivo Android.

Tuttavia, è comunque necessario verificare se il dispositivo è attualmente in modalità aereo attivato tramite ADB?

Lo chiedo perché le due righe di codice sopra attivano o disattivano la modalità aereo senza sapere se è accesa o spenta. Ma ho bisogno di un modo per assicurarmi che la modalità aereo sia effettivamente attivata/disattivata tramite ADB.

Per favore aiutatemi!

Grazie in anticipo

+0

Fo Per quanto riguarda il dispositivo specifico, sembrano esserci utili modifiche esposte eseguendo una diff sull'output di 'adb shell getprop' in entrambe le condizioni, ad esempio con il nome del gestore di rete, tuttavia potrebbe essere difficile scrivere regole generali su tutti i dispositivi/versioni . Ma dal momento che stai parlando di ADB, forse stai parlando di un test automatico eseguito su una collezione limitata di dispositivi, per il quale è possibile determinare un insieme funzionale di controlli pragmatici. È anche possibile che si ottenga un rapporto falso se la modalità aereo non è attiva ma il dispositivo per qualche motivo non è riuscito a trovare momentaneamente il servizio. –

+0

Direi che la risposta di Anand dovrebbe essere accettata perché il comando nella risposta di Alex cambia semplicemente il valore di impostazione della modalità Aereo (stato del pulsante), ma senza alcun effetto reale (le reti sono ancora abilitate). È necessario trasmettere l'intento dopo la modifica dell'impostazione per ottenere lo stesso effetto toccando manualmente il pulsante Modalità aereo sul dispositivo. –

risposta

13

adb shell settings get global airplane_mode_on rendimenti 0 per airplane_mode off e 1 per airplane_mode su.

+0

Grazie mille! Una domanda veloce, sai dove posso trovare ulteriori informazioni su queste impostazioni della shell adb? Voglio dire quali sono alcune delle altre cose che posso interrogare? Posso fare qualcosa come "le impostazioni della shell adb get global wifi_on" per verificare se la rete wifi è attivata? C'è qualche documentazione su questo sul web? Scusa se questo ha una risposta davvero ovvia che non vedo. – JJackJi

+2

Il comando 'settings get' è solo un semplice wrapper java per la query del provider di contenuti" impostazioni ". e come al solito è con Android - la migliore documentazione è nel codice sorgente https://android.googlesource.com/platform/frameworks/base/+/master/cmds/settings/src/com/android/commands/settings/ SettingsCmd.java –

16

È possibile utilizzare i seguenti comandi dopo aver eseguito adb shell.

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

Spegnere:
adb shell settings put global airplane_mode_on 0
adb shell am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false

Questo renderà la modalità aereo ON/OFF

+0

Sembra che tu possa omettere il parametro '--ez', quindi il comando broadcast sarà lo stesso sia per l'abilitazione che per la disabilitazione:' adb shell am broadcast -a android.intent.action.AIRPLANE_MODE'. Potresti spiegare un po 'come funziona esattamente, per favore? Voglio dire, perché sono necessari entrambi i comandi? La prima modifica l'impostazione della modalità Aereo, ma senza un reale effetto sulle reti, la seconda fa il resto del lavoro. –

Problemi correlati