14 votes

Démarrer une application Android via un script shell ?

Est-il possible de lancer une application Android réelle à partir de la ligne de commande dans Android ? Par exemple, disons que j'aimerais simplement lancer/mettre en avant mon calendrier. Y a-t-il un moyen de le faire ?

startapp com.google.calendar

12voto

Sparx Points 10852

En utilisant adb, je pense que c'est possible :

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>

Par exemple, nous avons un programme Android dont le manifeste est le suivant :

<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>

Pour exécuter le code, donnez la commande suivante (en une seule ligne) :

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

0 votes

Malheureusement, cela ne fonctionne pas avec SSH pour moi, mais c'est le cas lorsque l'on exécute adb Je vous l'accorde :)

0voto

5p0ng3b0b Points 124

Toutes les applications ont des activités différentes. Il y a une application qui va vous aider et qui s'appelle QuickShortcutMaker qui vous aidera si vous ne voulez pas commencer à décompiler les applications pour voir leurs fichiers manifestes. Je pense que vous devez être Root pour ouvrir les applications via le 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"

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X