2010-03-25 20 views
6

Quiero publicar mi aplicación (ABC). Es un archivo de audiolibro (solo por ejemplo) envuelto como apk. Cuando el usuario instala esta aplicación necesita verificar si otra aplicación (XYZ) ya está instalada o no. Si no, déjele saber al usuario que primero debe instalar la aplicación XYZ antes de instalar ABC.Android check para la aplicación dependiente durante la instalación?

Gracias de antemano

Rajesh

Respuesta

18

Si conoce el nombre del paquete de la aplicación que estamos buscando puede utilizar el PackageManager para la prueba de la existencia de una aplicación.

try{ 
    ApplicationInfo info = getPackageManager() 
          .getApplicationInfo("com.myproject", 0); 
    //-- application exists 
    } catch(PackageManager.NameNotFoundException e){ 
    //-- application doesn't exist 
} 
+1

No creo que puedas hacer esto "en la instalación". Tendrá que hacerlo la primera vez que ejecute la aplicación lo más probable. –

+0

correcto ... No creo que sea posible ejecutar este código en la instalación. Dicho esto, ¿qué medidas puedes tomar durante el proceso de instalación? ¿Sería mejor verificar la existencia de otra aplicación la primera vez que alguien realmente ejecute su aplicación? – JeremyFromEarth

+6

"Dicho esto, ¿qué medidas puedes tomar durante el proceso de instalación?" Nada: no obtiene el control antes de que el usuario lance su aplicación. "¿Sería mejor verificar la existencia de otra aplicación la primera vez que alguien realmente ejecute tu aplicación?" Sin opciones, esa es la única opción real. He argumentado a favor de un sistema de dependencia para los APK para hacer frente a esta situación, y la respuesta ha sido ... decepcionante. – CommonsWare

2

En caso XYZ es una biblioteca compartida , es posible que la configuración del manifiesto de Android de su aplicación para evitar que los usuarios que instalan sin ABC XYZ. Utilice el elemento dentro de la AndroidManifest.xml de ABC, al afirmar:

<uses-library android:name="package name of XYZ" android:required="true" /> 

Esperanza ayuda esto a su problema.

+1

¿Este enfoque informa al usuario que la aplicación no se puede instalar ya que requiere una aplicación dependiente? Si es así, ¿los lleva al mercado? – Bear

+2

El efecto de la configuración * uses-library * es que la aplicación será filtrada por Market, por lo que el usuario no podrá ver la aplicación * ABC * si * XYZ * aún no está instalado en el dispositivo: [ Market Filters] (http://developer.android.com/guide/appendix/market-filters.html) – Livio

Cuestiones relacionadas