14 votos

Iniciar una aplicación para Android a través de un shell script?

¿Es posible iniciar una aplicación real de Android desde la línea de comandos en Android? Por ejemplo, digamos que simplemente quisiera iniciar/llevar al frente mi calendario. ¿Hay alguna manera de que pueda hacer esto como:

startapp com.google.calendar

12voto

Sparx Puntos 9124

Usando adb, creo que es posible:

am [start|instrument]
am start [-a <action>] [-d ] [-t <mime_type>]
[-c <category> [-c <category>] ...]
[-e <extra_key> <extra_value> [-e <extra_key> <extra_value> ...]
[-n <component>] [-D] [<uri>]
am instrument [-e <arg_name> <arg_value>] [-p <prof_file>]
[-w] <component>

por ejemplo tenemos el programa Android con el Manifiesto como bajo:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="com.app1.android.xtract">
  <application android:icon="@drawable/icon">
   <activity class=".Contact" android:label="@string/app_name">
    <intent-filter>
    <action android:value="android.intent.action.MAIN" />
    <category android:value="android.intent.category.LAUNCHER" />
   </intent-filter>
  </activity>
 </application>
.
.
</manifest>

Para ejecutar el comando de emisión de código de esta manera (en una línea):

am start -a android.intent.action.MAIN -n com.app1.android.xtract/com.app1.android.xtract.Contact

0 votos

Desafortunadamente, no me funciona a través de SSH, pero sí cuando se ejecuta adb así que lo reconozco :)

0voto

5p0ng3b0b Puntos 24

Todas las aplicaciones tienen diferentes actividades. Hay una aplicación que te ayudará llamada QuickShortcutMaker que te ayudará si no quieres empezar a descompilar aplicaciones para ver sus archivos de manifiesto. Creo que necesitas ser Root para abrir las aplicaciones a través de la terminal.

# Examples

# From terminal emulator or adb as root open settings
am start com.android.settings/.Settings

# From ssh as root open settings
adb shell am start com.android.settings/.Settings

#Function to download a given url with chrome or stock browser
downloadurl(){ if [ $(pm list packages | grep -e 'com.android.chrome') ]; then am start -n com.android.chrome/com.google.android.apps.chrome.Main -d $1; sleep 10; input keyevent 4; return; fi; if [ $(pm list packages | grep -e 'com.android.browser') ]; then am start -a android.intent.action.VIEW -n com.android.browser/.BrowserActivity -d $1 && sleep 5; input keyevent 4; return; fi; am start -a android.intent.action.VIEW -d $1 && sleep 10; input keyevent 4; }
downloadurl "http://your.site.file.example.zip"

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X