2010-02-04 3 views
18

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

Например, я хочу включить или выключить режим полета в командной строке. В настоящее время, лучшее, что я могу сделать, это запустить в меню настройки сети беспроводной &, а затем использовать входное 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.Все видео. (Текущее решение: открытая Медиагалерея, отправить keyevents, подобный выше)

3.Change объем (текущее решение: отправить объемно-кнопку вверх keyevents)

4.Change тайм-аут дисплея (текущее решение: открытый звук & Настройки дисплея, отправьте ключевые события)

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

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

ответ

0

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

3

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

-2

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

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

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

15

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

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

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.

+0

good one..thanks для приятной информации – Naresh