2010-05-07 12 views
45

Estoy creando un sitio web móvil que incluirá una página desde la que las personas pueden descargar aplicaciones relevantes que recomendamos. He encontrado instructions para crear los enlaces para lanzar Market, pero esto supone que usted es el desarrollador de la aplicación en cuestión y conoce el nombre exacto del paquete.Buscar el nombre del paquete para las aplicaciones de Android a utilizar Intento para iniciar la aplicación Market desde la web

¿Hay alguna forma de obtener el nombre del paquete, aparte de solo contactar a los desarrolladores y preguntar?

Además, resulta que esas instrucciones realmente no funcionan para crear hipervínculos web. Solo te dan un URI para hacer referencia a una cadena de código Java en otra aplicación de Android. Nuestro sitio está en Drupal, por lo que Java no va a funcionar.

Para el iPhone, encontré easy instructions para obtener el estilo de URL/enlace que necesito de la tienda de iTunes, así que estoy buscando información como esa.

Respuesta

93

Depende de dónde exactamente desea obtener la información de. Usted tiene un montón de opciones:

  • Si usted tiene una copia de la APK, es sólo un caso de abrirlo como un archivo zip y mirando el archivo AndroidManifest.xml. El elemento de nivel superior <manifest> tendrá un atributo package.
  • Si usted tiene la aplicación instalada en un dispositivo y puede conectarse a través de adb, puede iniciar y ejecutar adb shellpm list packages -f, que muestra el nombre del paquete para cada APK instalado.
  • Si lo que desea es buscar manualmente un par de nombres de paquetes, se puede buscar la aplicación en http://www.cyrket.com/m/android/, y el nombre del paquete se muestra en la URL
  • También puede hacerlo progmatically de una aplicación para Android con el PackageManager

Una vez que tenga el nombre del paquete, simplemente enlace a market://search?q=pname:<package_name> o http://market.android.com/search?q=pname:<package_name>. Ambos abrirán el mercado en un dispositivo Android; este último obviamente también tiene el potencial de funcionar en otro hardware (no en el minuto).

+26

Otra forma más simple es: ir a la página de la aplicación en el mercado de Android (ahora google play), verifique la url. El paquete de la aplicación está entre? Id = y el & justo después. – Martin

+0

http://developer.android.com/guide/publishing/publishing.html Aquí puede encontrar la información formal de google – Li3ro

+0

adb shell pm list packages -f trabajó para mí. Cuando traté de extraer el archivo .apk, el archivo AndroidManifest.xml estaba en formato binario. –

0

Esta es una situación bastante difícil, puedes obtener el nombre del paquete del archivo apk, pero supongo que quieres hacerlo automáticamente.

AndroLib tiene los nombres de paquete para muchas aplicaciones, pero tendría que analizarlo ya que no hay API que pueda encontrar. Hay una sección de desarrollo que puede tener algunas herramientas para ayudarte.

buena suerte

+0

Thanks. Este problema es realmente más difícil de lo que pensaba, porque las instrucciones a las que he vinculado anteriormente tienen su propio defecto: son para enlazar al Market desde una aplicación, no desde un sitio web. Requieren Java, que no creo que vaya a jugar bien con Drupal, por decir lo menos. – eom

55

Uso aapt desde el SDK como

aapt dump badging yourpkg.apk 

Esto imprimirá el nombre del paquete, junto con otra información.

las herramientas se encuentra en
< sdk_home>/build-tools/Android- < api_level>
o
< sdk_home>/plataforma de herramientas
o
< sdk_home>/plataformas/Android- < api_level>/tools

Actualizado según geniusburger's comentario. ¡Gracias!

+1

Acabo de instalar el paquete ADT y lo encontré aquí ' \ build-tools \ android- ' – geniusburger

1

Aquí hay una manera fácil de obtener el paquete completo de la aplicación. podemos usar la aplicación de administrador de archivos astro. Puede obtenerlo en el mercado de Android. Administrador de la aplicación Astro nos muestra el paquete completo de la aplicación.

7

La siguiente secuencia de comandos bash se puede usar para mostrar los nombres de paquetes y actividades en una apk, y ejecutar la aplicación pasándole un archivo 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 

continuación para iniciar la aplicación en el emulador, sólo tiene que suministrar el nombre del archivo APK de este modo:

apk_start.sh /tmp/MyApp.apk 

Por supuesto, si lo que desea el paquete y la actividad nombre de la aplicación que se mostrará, elimine la última línea de la secuencia de comandos.

Puede detener una aplicación de la misma manera mediante el uso de este 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 

así:

apk_stop.sh /tmp/MyApp.apk 

Nota importante: aapt se puede encontrar aquí:

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

¡Te amo! Por cierto, la versión de la herramienta de compilación que estoy usando enumera la actividad con la actividad de inicio de la llave, así que tuve que modificar la actividad de grep para '' aapt dump badging $ * | grep actividad de lanzamiento | awk '{print $ 2}' | sed s/name = // g | sed s/\ '// g'' –

+0

Genial ... me alegro de que me haya ayudado ... y gracias por las sugerencias ... Hace un tiempo que no desarrollo Android, ¡así que es bueno saberlo! –

4

El siguiente código enumerarlos a cabo:

adb shell dumpsys package <packagename> 
2

Agregando a las respuestas anteriores: Para encontrar el nombre del paquete de aplicaciones instaladas en cualquier dispositivo Android: Ir al almacenamiento/Android/data/< nombre-paquete>

0

Una vez que tenga el nombre del paquete, como se describe Chris Smith's answer, podría/debería usar una URL de intención para el enlace. Es un special format URL que pondrá en marcha el paquete si el usuario ya ha instalado, o abra la tienda de juego en la página de la aplicación si no ...

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

La aplicación necesita para apoyar esto, con una actividad etiquetada como navegable , pero muchos lo harán.

-2

Si desea esta información en su teléfono, lo mejor es usar una aplicación como 'APKit' que muestra el nombre completo del paquete de cada aplicación en su teléfono. Esta información puede ser utilizada en su teléfono.

0
  1. Ir a la configuración de la aplicación.
  2. Haga clic en Almacenamiento & USB.
  3. Haga clic en la tarjeta del teléfono.
  4. Haga clic en Android.
  5. Haga clic en Datos.

Ahora puede encontrar los nombres de los paquetes de todas las aplicaciones que están instaladas en su teléfono.

enter image description here

Cuestiones relacionadas