Подтвердить что ты не робот

Команды оболочки Adb для изменения настроек или выполнения задач на телефоне

Как использовать 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.Измените тайм-аут отображения (текущее решение: откройте настройки звука и дисплея, отправьте ключевые события)

Как и прежде, все это требует, чтобы экран был включен и разблокирован. Другим серьезным недостатком использования ключевых событий является изменение пользовательского интерфейса приложения, ключевые события больше не будут выполнять правильную функцию. Если нет более простого способа сделать такие вещи, существует ли хотя бы один способ включить экран (используя 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 shell? Возможно ли это, или неправильный способ думать об этом?

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

4b9b3361

Ответ 1

Хотя вопрос старый, он может помочь кому-то другому.

Для воспроизведения видео вы можете попробовать следующее:

adb shell am start -a android.intent.action.VIEW -d   "file:///mnt/sdcard/DCIM/Camera/test.3gp" -t "video/*" 

^ дает вам подсказку всех способных игроков, которые могут воспроизводить этот файл.

adb shell am start -a android.intent.action.VIEW -d "file:///mnt/sdcard/DCIM/Camera/test.3gp" -t "video/*" -n "com.alensw.PicFolder/.PlayerActivity" 

^ играет в плеер, указанный переключателем -n.

Ответ 2

Я работаю над одним и тем же набором проблем. (Я в основном решал проблему контекста с помощью прямых нажатий кнопок, используя keyevent HOME, а затем MENU, но - как-то - даже это ненадежно.) Я сейчас изучаю SL4A (Scripting Layer для Android), который имеет обещание. Это позволяет Perl, Python, Lua и другим языкам сценариев взаимодействовать с Android API с вашего ПК после запуска сервера SL4A на устройстве, что также можно сделать с ПК. Я нахожу " Pro Android Python с SL4A" отличным ресурсом; Я бы спасли себе дни проб и ошибок и охоты в Интернете, если бы я начал с этой книги

Ответ 3

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

Ответ 4

MonkeyRunner также выглядит так, как будто он обещает, хотя я еще не вырыл достаточно глубоко, чтобы найти его пределы.

Android ScreenCast позволяет просматривать и управлять экраном вашего устройства с вашего ПК, что также имеет потенциал для автоматизации. Однако у этого есть некоторые проблемы с логистикой для этого приложения.

Кстати, вы можете пройти через заблокированный рабочий стол с помощью клавиши MENU и набора отправлений (вместо ключевых событий).