7 votes

Découvrir les intentions qu'une application utilise en interne

J'ai une application ( Outils intelligents ) qui se compose de plusieurs sous-applications distinctes. J'aimerais avoir un raccourci pour une seule sous-application, afin de ne pas avoir à l'ouvrir via le menu principal de l'application.

Je suis presque sûr que l'application utilise une diffusion d'intention spécifique pour ouvrir une des sous-applications. Je sais que Tasker peut être utilisé pour diffuser une intention personnalisée au système Android. Si je comprends bien, si j'imite simplement l'intention que le menu principal de Smart Tools utilise pour invoquer la sous-application spécifique, je pourrais lancer la sous-application directement avec un raccourci Tasker.

Mais pour cela, je dois être capable d'imiter l'intention. Puisque Smart Tools n'est pas open source, comment puis-je savoir quelle intention l'application utilise "en interne" ?

5voto

ce4 Points 14264

La solution la plus simple : Demandez au développeur !

Raison : C'est la source la plus fiable s'il/elle répond. Vous ne pouvez pas dire facilement quels paramètres définir et s'il est même permis de lancer d'autres activités à partir de votre propre "lanceur d'intention" (qu'il s'agisse de Tasker ou d'autre chose).

J'y ai jeté un coup d'œil rapide, c'est une application payante et un petit dev. Souvent, ces développeurs sont très attentifs et répondent rapidement, surtout s'il s'agit d'une application payante. Je l'ai fait avec Titanium Backup dans le passé et j'ai été positivement surpris de la facilité avec laquelle c'était possible.

Si vous disposez de l'information, vous pouvez également utiliser l'application gratuite Raccourcis d'intention manuels pour créer un lanceur personnalisé.

Google Play dispose d'un bouton "contacter le développeur" juste en dessous de la description générale de (la plupart ?) des applications. En regardant les outils intelligents, on voit qu'il est là : androidboy1 (at) gmail com

Ce que vous pourriez aussi faire :

L'UC Berkeley a un projet sympa :
ComDroid . Un outil d'analyse statique pour identifier les vulnérabilités des applications basées sur la communication

C'est un service web où vous pouvez télécharger votre .apk. (Puisque vous posez une question avancée, je suppose que vous savez comment obtenir l'apk de votre application). Après le téléchargement, recherchez dans l'analyse Lancement d'activités malveillantes c'est l'information que vous voulez. Vous pourriez avoir la chance de mauvaise utilisation en utilisant Tasker, etc.

5voto

8bitme Points 121

Vous pouvez utiliser adb pour vérifier quels intents une application utilise. Les étapes pour ce faire sont les suivantes :

  • Activer les options du développeur
  • Sous les options du développeur, activez le débogage adb.
  • Connecter le téléphone à l'ordinateur
  • Récupère les logs d'adb et extrait les intents : adb logcat | fgrep -i intent
  • Déclenchez l'intention sur votre téléphone
  • Inspecter les journaux pour trouver les détails de l'intention

3voto

samt Points 713

Vous devez avoir le manifest.xml de l'APK. Si vous renommez le .apk en .zip, vous pourrez l'ouvrir. Avec un peu de chance, vous pouvez lire le manifeste, sinon vous devez décompiler l'APK (beaucoup de tutoriels en ligne).

Vous devez ensuite rechercher les intents qu'il écoute et les utiliser. Ou utiliser le nom du composant et le lancer explicitement. Je ne sais pas comment faire cela dans Tasker, mais je ne sais pas comment le faire par programmation :

Intent intent = new Intent();
intent .setComponent(new ComponentName("com.package.name","com.package.name.activity"));
startActivity(intent);

2voto

Milner Points 533

Si votre appareil est enraciné, vous pouvez installer Gestionnaire AutoRun du marché (pour une simple recherche des auditeurs, la version gratuite fera aussi bien l'affaire). Utilisez son mode avancé - et là, il vous donnera la liste de toutes les applications qui ont des listeners (qui écoutent les intents). Appuyez sur l'application que vous souhaitez examiner et tous les écouteurs d'intentions enregistrés s'affichent. Vous pouvez même désactiver ceux qui vous dérangent (par exemple, l'écouteur du service Google Maps lors d'un changement de réseau, qui cherche à vous localiser).

1voto

kyle k Points 183

J'utiliserais un décompilateur Dexplorer regardez dans le fichier manifest, il y aura les intents que l'application utilise.

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