Vote utilisateur: 5 / 5

Etoiles activesEtoiles activesEtoiles activesEtoiles activesEtoiles actives
 

On procède de la même façon que pour lancer une autre application AppInventor. La seule difficulté supplémentaire est de trouver le nom de la classe et du package. 

Pour cela, il va falloir utiliser le logcat d’ADB. Cet outil espionne tout ce qui se passe sur le téléphone. Si le SDK Android n’est pas installé il faut le faire via Android developper c’est de l’artillerie lourde peut-être que le SDK est dispo tout seul ailleurs ? Une fois installé il faut se rendre dans le dossier C:\Users\<nom d’utilisateur>\AppData\Local\Android\SDK\platform-tools et lancer une console Windows ou bien faire :

  1. Win + R,
  2. Cmd puis entrée,
  3. taper cd C:\Users\<nom d’utilisateur>\AppData\Local\Android\SDK\platform-tools puis entrée.

On va maintenant vérifier la connexion avec le téléphone (là il doit être branché en USB et le mode développeur validé).

Taper adb devices dans la console Windows. La réponse est la suivante (le nom de l’appareil peut changer, mais n’en brancher qu’un seul) : 

C:\Users\Frank\AppData\Local\Android\sdk\platform-tools>adb devices
List of devices attached
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
20000000010183C0        device

Normalement sur l’appareil Android apparait une demande d’autorisation de connexion. Valider.
 
On va maintenant lancer logcat en filtrant le résultat pour ne voir que ce qui est une activité. Taper la commande suivante :
adb logcat ActivityManager:I MyApp:D *:S
Sur le téléphone, lancer maintenant l’application désirée. Ici je lance Waze. La réponse sur la console Windows est la suivante :

I/ActivityManager(  825) : START u0 {act=android.intent.action.MAIN cat=[Android.
intent.category.LAUNCHER] flg=0x10200000 cmp=com.waze/.FreeMapAppActivity bnds=[
0,320][144,498] (has extras)} from pid 1140
I/ActivityManager(  825): Start proc com.waze for activity com.waze/.FreeMapAppA
ctivity: pid=24766 uid=10094 gids={50094, 3003, 1028, 1015, 1023, 3002}
I/ActivityManager(  825): START u0 {cmp=com.waze/.MainActivity} from pid 24766
I/ActivityManager(  825): Displayed com.waze/.MainActivity : +1s140ms (total +1s4
12ms)
W/ActivityManager(  825) : Unable to start service Intent { act=com.extscreen.ser
vice } U=0 : not found
W/ActivityManager(  825) : Unable to start service Intent { act=com.extscreen.ser
vice } U=0 : not found

Je recherche la première occurence de « cmp= » qui parle de Waze (je l’ai mise en jaune). Avant le / c’est le package (com.waze) et après le nom de la classe (com.waze.FreeMapAppActivity) on met tout sans le slash.

Il reste à remplir le « activity starter » :

Et mettre un bloc qui lance cette activité :

Et voilà...

 

Vous n'avez pas le droit de commenter cet article.