web-dev-qa-db-fra.com

Rechercher le nom du package pour les applications Android à utiliser pour pouvoir lancer l'application Market à partir du Web.

Je crée un site Web mobile qui comprendra une page à partir de laquelle les gens pourront télécharger les applications pertinentes que nous recommandons. J'ai trouvé instructions pour créer les liens permettant de lancer le marché, mais cela suppose que vous êtes le développeur de l'application en question et que vous connaissez le nom exact du package. 

Existe-t-il un moyen d'obtenir le nom du paquet, autrement que de contacter les développeurs et de demander?

En outre, il s'avère que ces instructions ne fonctionnent pas vraiment pour la création de liens hypertexte Web. Ils vous donnent uniquement un URI à référencer dans une chaîne de code Java dans une autre application Android. Notre site est en Drupal, donc Java ne va pas fonctionner.

Pour l'iPhone, j'ai trouvé des instructions simples pour obtenir l'URL/le style de lien dont j'ai besoin sur iTunes Store, je recherche donc des informations comme celle-ci.

45
eom

Cela dépend d'où vous voulez obtenir exactement les informations. Vous avez un tas d'options:

  • Si vous avez une copie du fichier .apk, il vous suffit de l'ouvrir en tant que fichier Zip et de consulter le fichier AndroidManifest.xml. L'élément <manifest> de niveau supérieur aura un attribut package.
  • Si l'application est installée sur un appareil et que vous pouvez vous connecter à l'aide de adb, vous pouvez lancer adb Shell et exécuter pm list packages -f, qui affiche le nom du package pour chaque apk installé.
  • Si vous souhaitez simplement rechercher manuellement quelques noms de package, vous pouvez rechercher l'application sur http://www.cyrket.com/m/Android/ , et le nom du package s'affiche dans l'URL.
  • Vous pouvez également le faire progressivement à partir d’une application Android à l’aide de la variable PackageManager.

Une fois que vous avez le nom du paquet, il vous suffit de créer un lien vers market://search?q=pname:<package_name> ou http://market.Android.com/search?q=pname:<package_name>. Les deux vont ouvrir le marché sur un appareil Android; ce dernier a évidemment le potentiel de fonctionner sur d'autres matériels (ce n'est pas le cas à la minute).

96
Chris

Utilisez aapt à partir du SDK comme

aapt dump badging yourpkg.apk

Cela va imprimer le nom du paquet avec d'autres informations.

les outils sont situés dans 
<sdk_home>/build-tools/Android- <niveau_api>
ou
<sdk_home>/platform-tools
ou
<sdk_home>/plates-formes/Android- <niveau_api>/tools

Mis à jour en fonction du commentaire de geniusburger. Merci!

55
accuya

Le script bash suivant peut être utilisé pour afficher les noms de package et d'activité dans un apk, et lancer l'application en lui transmettant un fichier APK.

apk_start.sh

package=`aapt dump badging $* | grep package | awk '{print $2}' | sed s/name=//g | sed s/\'//g`
activity=`aapt dump badging $* | grep Activity | awk '{print $2}' | sed s/name=//g | sed s/\'//g`
echo
echo package : $package
echo activity: $activity
echo
echo Launching application on device....
echo
adb Shell am start -n $package/$activity

Ensuite, pour lancer l’application dans l’émulateur, indiquez simplement le nom de fichier APK comme suit:

apk_start.sh /tmp/MyApp.apk

Bien sûr, si vous voulez juste que le paquet et le nom de l'activité de l'apk soient affichés, supprimez la dernière ligne du script.

Vous pouvez arrêter une application de la même manière en utilisant ce script:

apk_stop.sh

package=`aapt dump badging $* | grep package | awk '{print $2}' | sed s/name=//g | sed s/\'//g`
adb Shell am force-stop $package

ainsi:

apk_stop.sh /tmp/MyApp.apk

Note importante : aapt peut être trouvé ici: 

<Android_sdk_home>/build-tools/Android-<ver>/aapt
7
Brad Parks

Le code suivant les listera:

adb Shell dumpsys package <packagename>
4
Thejus Krishna

Je ne sais pas si vous en avez toujours besoin, mais dans http://www.appbrain.com/ , vous recherchez l'application et le nom du package se trouve dans l'URL. Par exemple: http://www.appbrain.com/app/fruit-ninja/com.halfbrick.fruitninja est le lien pour Fruit Ninja. Remarquez le gras

3
Anonymous

Ajouter aux réponses ci-dessus: Pour trouver le nom du package des applications installées sur n’importe quel appareil Android: Allez à Stockage/Android/data/<nom du paquet>

2
Akil Adeshwar

Vous pouvez rechercher l'application en ligne dans le Google Play Store. Lorsque trouvé, vérifiez l'URL, par exemple, https://play.google.com/store/apps/details?id=lutey.FTPServer&hl=fr

Le paramètre id correspond au nom du package de l'application. Dans le cas de l'URL de l'exemple, le nom du package est lutey.FTPServer.

1
R B

Voici un moyen facile d'obtenir le package complet de l'application . Nous pouvons utiliser l'application du gestionnaire de fichiers astro. Vous pouvez l'obtenir sur le marché Android . Astro app manager montre le package complet de l'application.

1
B.C.Kim

Une fois que vous avez le nom du paquet, comme décrit Réponse de Chris Smith , vous pouvez/devriez utiliser une URL d'intention pour le lien. C'est un URL de format spécial qui lancera le package si l'utilisateur l'a déjà installé ou ouvre le Play Store sur la page de l'application si ce n'est pas le cas ...

intent://#Intent;package=qualified.package.name;end

L'application doit supporter cela, avec une activité étiquetée comme navigable, mais beaucoup le feront.

0
bbsimonbb

C'est une situation assez difficile, vous pouvez obtenir le nom du paquet à partir du fichier apk, mais je suppose que vous voulez le faire automatiquement. 

AndroLib a les noms de paquets pour beaucoup d'applications, mais vous devrez les analyser car il n'y a pas d'API que je pourrais trouver. Il existe une section de développement qui peut avoir des outils pour vous aider.

Bonne chance

0
Con
  1. Aller à la configuration de l'application.
  2. Cliquez sur Stockage & USB.
  3. Cliquez sur carte téléphonique.
  4. Cliquez sur Android.
  5. Cliquez sur les données.

Vous pouvez maintenant trouver les noms de paquet de toutes les applications installées sur votre téléphone.

 enter image description here

0
Siddarth Kanted