Detectar que una aplicación está instalada o no?

Tengo una aplicación que registra un controlador para URI personalizado en el teléfono. Puedo iniciar la aplicación haciendo un enlace a "myapp: // act / launch" desde las páginas web de mi teléfono. Esto sólo funciona si mi aplicación está instalada en el dispositivo. Lo que quiero hacer es detectar si el esquema de URI es compatible con el navegador y luego pedir mi propio mensaje diciendo "descargar la aplicación, etc …" si no se encuentra el controlador para el esquema de URI.

¿Hay una manera de detectar o encontrar la lista de controladores de URL Scheme en el teléfono desde el navegador web?

De Android Cómo hacerlo

Si alguna vez necesita saber si una aplicación en particular está instalada en el dispositivo del usuario, puede utilizar PackageManager. Desde una clase Context (por ejemplo, una Actividad o un Servicio) puede llamar a getPackageManager (). Esto le da una variedad de métodos, uno de los cuales es getPackageInfo (). A continuación se muestra un método que puede utilizar. Usted puede llamar así:

isAppInstalled("com.simexusa.campusmaps_full"); private boolean isAppInstalled(String packageName) { PackageManager pm = getPackageManager(); boolean installed = false; try { pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES); installed = true; } catch (PackageManager.NameNotFoundException e) { installed = false; } return installed; } 
  1. Debe crear una página web en la que se encuentre el usuario si la aplicación no está instalada. Diga http://www.yourcompany.com/android/android_app_is_not_installed_landing_page.html

  2. La aplicación debe registrarse en el servidor de archivos XML de manifiesto http://www.yourcompany.com, en el esquema "http" y en el path param para que la aplicación no instale la página de destino en el filtro de intenciones de manifiesto:

     <!-- These intents are used to launch the app from the web page--> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="http" android:host="www.yourcompany.com" android:path="/android/android_app_is_not_installed_landing_page.html" /> </intent-filter> 
  3. Ahora, en la página web que invoca tu aplicación, especificas el enlace completo a android_app_is_not_installed_landing_page.html seguido de cualquier parámetro que quieras pasar a la aplicación:

http://www.yourcompany.com/android/ android_app_is_not_installed_landing_page.html? '> Haga clic aquí para iniciar la aplicación si está instalada

Si la aplicación está instalada, se lanzará y pasará toda http://www.yourcompany.com/android/android_app_is_not_installed_landing_page.html ? ' En la intención de que necesita analizar, extraer y hacer lo que se supone que debe hacer.

Si la aplicación no está instalada, el navegador Web de Android abrirá la página de inicio de "Aplicación para Android no instalada" http://www.yourcompany.com/android/android_app_is_not_installed_landing_page.html o. Esa página debe mensaje de usuario para instalar la aplicación y proporcionar el enlace para instalarlo desde el mercado de Android.

Encontré esta descripción aquí: https://groups.google.com/forum/m/?fromgroups#!topic/android-developers/RGLHkGUpRoA

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.