Adb окружают команды, чтобы изменить настройки или выполнить задачи по телефону

Как я использую adb для выполнения некоторых автоматизированных задач на моем телефоне на базе Android? Я должен найти команды, которые я могу дать из командной строки (идеально, с помощью .bat файла), который будет способен к больше, чем простому открытию приложения или отправке входа keyevent (нажатие кнопки).

Например, я хочу переключить Авиарежим на или прочь из командной строки. В настоящее время лучшее, которое я могу сделать, запустить меню Беспроводных и параметров сети и затем использовать вход keyevents для нажатия на Авиарежим:

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

Существует довольно много недостатков к этому методу, прежде всего, что экран должен идти и разблокирован. Кроме того, задачи, которые я хочу сделать, намного более широки, чем этот простой пример. Другие вещи я хотел бы сделать если возможный:

1. Играйте mp3 и установите его на повторении. Текущее решение:

adb shell am start -n com.android.music/.MusicBrowserActivity
adb shell input keyevent 84
adb shell input keyevent 56 & adb shell input keyevent 66 & adb shell input keyevent 67 & adb shell input keyevent 19
adb shell input keyevent 23 & adb shell input keyevent 21
adb shell input keyevent 19 & adb shell input keyevent 19 & adb shell input keyevent 19 & adb shell input keyevent 22 & adb shell input keyevent 22 & adb shell input keyevent 23 & adb shell input keyevent 23

2. Играйте видео. (текущее решение: откройте MediaGallery, отправьте keyevents, подобный вышеупомянутому),

3. Измените объем (текущее решение: отправьте кнопку объема keyevents),

4. Измените тайм-аут дисплея (текущее решение: откройте звук и настройки дисплея, отправьте keyevents),

Как прежде, они все требуют, чтобы экран шел и разблокирован. Другой главный недостаток к использованию keyevents состоит в том, если UI приложения будет изменен, то keyevents больше не будет выполнять корректную функцию. Если нет никакого более легкого способа сделать подобные вещи, существует ли, по крайней мере, способ включить экран (использующий adb), когда это прочь? Или иметь keyevents все еще работают, когда экран прочь?

Я не очень знаком с Java. Тем не менее я видел код как следующее (источник: http://yenliangl.blogspot.com/2009/12/toggle-airplane-mode.html) для изменения настроек по телефону:

Settings.System.putInt(Settings.System.AIRPLANE_MODE_ON, 1 /* 1 or 0 */);

Как я перевожу что-то как вышеупомянутое в команду оболочки adb? Действительно ли это возможно, или неправильный способ думать об этом?

Я могу предоставить больше подробную информацию в случае необходимости. Спасибо!

18
задан Noah 4 February 2010 в 21:49
поделиться

1 ответ

Показанный вами пример Java относится к программе, работающей на самом телефоне. Возможно, вы сможете запрограммировать на телефоне какой-то интерпретатор, который обрабатывает команды adb. Таким образом, вы больше не зависите от ключевых событий. Однако это не мелочь.

0
ответ дан 30 November 2019 в 09:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: