Как мне использовать adb для выполнения некоторых автоматических задач на моем телефоне Android? Мне нужно найти команды, которые я могу выполнить из командной строки (в идеале, используя файл .bat), которые будут способны не только открывать приложение или отправлять событие ввода ключа (нажатие кнопки).
Например, я хочу включить или выключить режим полета из командной строки. В настоящее время лучшее, что я могу сделать, - это запустить меню настроек беспроводной сети и сети, а затем с помощью клавиш ввода нажать «Режим полета»:
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, отправьте ключевые события, аналогичные описанным выше)
3.Измените громкость (текущее решение: отправьте ключевые события на кнопку увеличения громкости)
4.Измените тайм-аут дисплея (текущее решение: открыть настройки звука и дисплея, отправить ключевые события)
Как и прежде, все это требует, чтобы экран был включен и разблокирован. Другим основным недостатком использования keyevents является то, что если пользовательский интерфейс приложения изменяется, keyevents больше не будет выполнять правильную функцию. Если нет более простого способа сделать подобные вещи, есть ли хотя бы способ включить экран (используя adb), когда он выключен? Или чтобы ключевые события все еще работали при выключенном экране?
Я не очень знаком с Java. Тем не менее, я видел код, подобный следующему (источник: http://yenliangl.blogspot.com/2009/12/toggle-airplane-mode.html), чтобы изменить настройку на телефоне:
Settings.System.putInt(Settings.System.AIRPLANE_MODE_ON, 1 /* 1 or 0 */);
Как мне перевести что-то подобное выше в команду оболочки adb? Это возможно или неправильный способ думать об этом?
Я могу предоставить более подробную информацию, если это необходимо. Спасибо!