para lista hard descargar debug comandos android adb

android - lista - Comandos de shell Adb para cambiar la configuración o realizar tareas en un teléfono



comandos adb shell (4)

¿Cómo uso adb para realizar algunas tareas automatizadas en mi teléfono Android? Necesito encontrar los comandos que puedo emitir desde la línea de comandos (idealmente, usando un archivo .bat) que serán capaces de algo más que simplemente abrir una aplicación o enviar un evento clave de entrada (presión de botón).

Por ejemplo, quiero activar o desactivar el Modo avión en la línea de comandos. Actualmente, lo mejor que puedo hacer es iniciar el menú Configuración de red e inalámbrica y luego usar los elementos clave de entrada para hacer clic en Modo avión:

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

Este método tiene algunos inconvenientes, principalmente que la pantalla debe estar encendida y desbloqueada. Además, las tareas que quiero hacer son mucho más amplias que este simple ejemplo. Otras cosas que me gustaría hacer si es posible:

1. Reproduce un mp3 y ponlo en repetición. Solución actual:

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. Reproducir un video. (Solución actual: abrir MediaGallery, enviar eventos clave, similar al anterior)

3.Cambie el volumen (solución actual: enviar eventos clave del botón de subir volumen)

4.Cambie el tiempo de espera de la pantalla (solución actual: abra la configuración de sonido y pantalla, envíe eventos clave)

Como antes, todo esto requiere que la pantalla esté encendida y desbloqueada. El otro gran inconveniente del uso de eventos clave es que si se cambia la interfaz de usuario de la aplicación, los eventos clave ya no realizarán la función correcta. Si no hay una forma más fácil de hacer este tipo de cosas, ¿hay al menos una forma de encender la pantalla (usando adb) cuando está apagada? ¿O para que los eventos clave sigan funcionando cuando la pantalla está apagada?

No estoy muy familiarizado con Java. Dicho esto, he visto un código como el siguiente (fuente: http://yenliangl.blogspot.com/2009/12/toggle-airplane-mode.html ) para cambiar una configuración en el teléfono:

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

¿Cómo puedo traducir algo como lo anterior en un comando de shell adb? ¿Es esto posible, o la manera incorrecta de pensar en ello?

Puedo proporcionar más detalles si es necesario. ¡Gracias!


Aunque la pregunta es vieja, podría ayudar a alguien más.

Para la reproducción de video, puedes probar esto:

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

^ te da un aviso de todos los jugadores capaces que pueden reproducir este archivo.

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

^ juega en el jugador especificado por el interruptor -n.


El ejemplo de Java que muestra es para un programa que se ejecuta en el propio teléfono. Es posible que pueda programar algún tipo de intérprete en el teléfono que maneje los comandos adb. De esa manera ya no eres dependiente de los eventos clave. Esta no es una empresa menor, sin embargo.


Estoy trabajando en el mismo conjunto de problemas. (La mayoría de las veces resolví el problema de contexto con solo presionar un botón usando HOME y luego el MENÚ, pero, de alguna manera, incluso eso no es confiable.) Actualmente estoy investigando SL4A (Capa de scripting para Android), lo cual es prometedor. Permite que Perl, Python, Lua y otros lenguajes de script interactúen con la API de Android desde su PC después de iniciar un servidor SL4A en el dispositivo, lo que también se puede hacer desde la PC. Estoy encontrando que " Pro Android Python con SL4A " es un excelente recurso; Me hubiera ahorrado días de prueba y error y búsqueda en la Web si hubiera empezado con ese libro.


MonkeyRunner también parece que tiene promesa, aunque todavía no he profundizado lo suficiente como para encontrar sus límites.

Android ScreenCast le permite ver y controlar la pantalla de su dispositivo desde su PC, que también tiene potencial para la automatización. Sin embargo, tiene algunos problemas logísticos para esa aplicación.

Por cierto, puede pasar la pantalla de inicio bloqueada con un evento de teclado de MENÚ y un conjunto de eventos de envío (en lugar de eventos de teclado).