2010-05-07 7 views
45

Je crée un site Web mobile qui inclura une page à partir de laquelle les utilisateurs peuvent télécharger les applications pertinentes que nous recommandons. J'ai trouvé instructions pour créer les liens pour lancer le marché mais cela suppose que vous êtes le développeur de l'application en question et connaissez le nom exact du paquet.Trouver le nom du package pour les applications Android à utiliser Intention de lancer l'application Market à partir du Web

Y at-il un moyen d'obtenir le nom du paquet, autre que de simplement contacter les développeurs et demander?

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

Pour l'iPhone, j'ai trouvé easy instructions pour obtenir le style URL/lien dont j'ai besoin de la boutique iTunes, donc je cherche des informations comme ça.

Répondre

93

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

  • Si vous avez une copie de la .apk, il est juste un cas d'ouverture comme un fichier zip et regarder le fichier AndroidManifest.xml. L'élément de niveau supérieur <manifest> aura un attribut package.
  • Si l'application est installée sur un périphérique et peut se connecter en utilisant 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 voulez juste trouver manuellement quelques noms de paquets, vous pouvez rechercher l'application sur http://www.cyrket.com/m/android/, et le nom du package est montré dans l'URL
  • Vous pouvez aussi le faire progmatically à partir d'une application Android en utilisant la PackageManager

Une fois que vous avez le nom du paquet, vous devez simplement lier à 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).

+26

Un autre et plus simple est: aller à la page de l'application sur le marché android (maintenant google play), vérifiez l'URL. Le paquet de l'application est entre? Id = et le & juste après. – Martin

+0

http://developer.android.com/guide/publishing/publishing.html Ici vous pouvez trouver les informations formelles de google – Li3ro

+0

adb shell pm liste paquets -f a travaillé pour moi. Lorsque j'ai essayé d'extraire le fichier .apk, le fichier AndroidManifest.xml était en binaire. –

0

Ceci 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 l'analyser car il n'y a pas d'API que je pourrais trouver. Theres une section de développement qui peut avoir quelques outils pour vous aider.

Bonne chance

+0

Merci. Ce problème est en fait plus difficile que je ne le pensais, parce que les instructions que j'ai liées à ci-dessus ont leur propre faille - il s'agit d'un lien vers le marché à partir d'une application, pas d'un site Web. Ils ont besoin de Java, ce qui, je pense, ne va pas bien jouer avec Drupal, c'est le moins qu'on puisse dire. – eom

55

Utilisez aapt du SDK comme

aapt dump badging yourpkg.apk 

Cela affichera le nom du paquet ainsi que d'autres informations.

les outils se trouve dans
< sdk_home>/build-tools/Android- < api_level>
ou
< sdk_home>/plate-outils
ou
< sdk_home>/plates-formes/Android- < api_level>/tools

Mis à jour selon le commentaire de geniusburger. Merci!

+1

Je viens d'installer le bundle ADT et l'ai trouvé ici ' \ build-tools \ android- ' – geniusburger

1

Voici un moyen facile d'obtenir le paquet complet de l'application. nous pouvons utiliser l'application gestionnaire de fichiers astro. Vous pouvez l'obtenir sur le marché android. Astro app gestionnaire nous montre le paquet complet de l'application.

7

Le script bash suivant peut être utilisé pour afficher les noms de paquetages et d'activités dans un apk, et lancer l'application en lui passant 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, il suffit fournissent le nom du fichier APK comme ceci:

apk_start.sh /tmp/MyApp.apk 

Bien sûr, si vous voulez juste le paquet et l'activité nom de l'apk à afficher, 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 

comme ceci:

apk_stop.sh /tmp/MyApp.apk 

Note importante: AAPT peut être trouvé ici:

<android_sdk_home>/build-tools/android-<ver>/aapt 
+1

Je t'aime! btw la version de l'outil de construction que j'utilise, répertorie l'activité avec l'activité launchable-clé, donc j'ai dû modifier l'activité grep à '' aapt dump badging $ * | grep activité launchable | awk '{print $ 2}' | sed s/nom = // g | sed s/\ '// g'' –

+0

Cool ... content que ça ait aidé ... et merci pour les suggestions ... Je n'ai pas fait de dev Android depuis un bout de temps, donc c'est bon à savoir! –

4

Le code suivant les énumérer:

adb shell dumpsys package <packagename> 
2

Ajout des réponses ci-dessus: Pour trouver le nom du package d'applications installées sur un appareil Android: Aller au stockage/Android/data/< nom-package>

1

Vous pouvez effectuer une recherche dans l'application en ligne sur le Google Play Store.Lorsqu'il est trouvé, vérifiez l'URL, par exemple, https://play.google.com/store/apps/details?id=lutey.FTPServer&hl=en

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

0

Une fois que vous avez le nom du package, comme décrit Chris Smith's answer, vous pouvez/devez utiliser une URL d'intention pour le lien. Il est un special format URL qui va lancer le paquet si l'utilisateur a déjà installé, ou ouvrir le magasin de jeu à la page de l'application sinon ...

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

L'application doit prendre en charge ce, avec une activité marquée comme explorable , mais beaucoup le feront.

-2

Si vous voulez cette information dans votre téléphone, alors le mieux est d'utiliser une application comme 'APKit' qui affiche le nom complet de chaque application dans votre téléphone. Cette information peut ensuite être utilisée dans votre téléphone.

0
  1. Passez à l'application de configuration.
  2. Cliquez sur Stockage & USB.
  3. Cliquez sur Phone Card.
  4. Cliquez sur Android.
  5. Cliquez sur Données.

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

enter image description here

Questions connexes