2013-11-21 4 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.

Пожалуйста, помогите мне!

Заранее спасибо

+0

Fo ra, похоже, есть полезные изменения, открытые при запуске diff на выходе 'adb shell getprop' в обоих условиях - например, с именем сетевой несущей - однако может быть сложно написать общие правила для всех устройств/версий , Но поскольку вы говорите о ADB, возможно, вы говорите об автоматическом тестовом прогоне на ограниченном наборе устройств, для которого вы можете определить эффективный набор прагматических проверок. Также возможно, что вы получите ложный отчет, если режим полета не активен, но устройство по какой-то причине сразу не смогло найти службу. –

+0

Я бы сказал, что ответ Ананда должен быть принят вместо этого, поскольку команда в ответе Алекса просто изменяет значение настройки режима полета (состояние кнопки), но без какого-либо реального эффекта (сети все еще включены). Вы должны транслировать намерение после изменения настройки, чтобы иметь тот же эффект, что и ручное нажатие кнопки режима самолета на устройстве. –

ответ

13

adb shell settings get global airplane_mode_on возвращает 0 для airplane_mode выключен и 1 для airplane_mode на.

+0

Большое спасибо! Быстрый вопрос, знаете ли вы, где я могу узнать больше об этих настройках оболочки adb? Я имею в виду, какие из других вещей я могу запросить? Могу ли я сделать что-то вроде «настройки оболочки adb get global wifi_on», чтобы проверить, включен ли Wi-Fi? Есть ли в Интернете какая-либо документация? Извините, если у этого есть действительно очевидный ответ, которого я не вижу. – JJackJi

+2

'settings get' command - просто простая java-оболочка для запроса настроек контента. и, как обычно, с android - лучшая документация находится в исходном коде 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'. Не могли бы вы немного объяснить, как именно это работает, пожалуйста? Я имею в виду, почему нужны обе команды? Первый из них просто изменяет настройку режима самолета, но без реального эффекта на сети, второй выполняет остальную работу. –

Смежные вопросы