Подтвердить что ты не робот

Обнаружить приложение установлено или нет?

У меня есть приложение, которое регистрирует обработчик для пользовательского URI на телефоне. Я могу запустить приложение, сделав ссылку на "myapp://act/launch" с веб-страниц телефона. Это работает, только если мое приложение установлено на устройстве. То, что я хочу сделать, это определить, поддерживается ли схема URI из браузера, а затем запросить мое собственное сообщение "скачайте приложение и т.д.", Если обработчик для схемы URI не найден.

Есть ли способ обнаружить или найти список обработчиков схем URL на телефоне в веб-браузере?

4b9b3361

Ответ 1

Из Инструкции для Android

Если вам когда-либо нужно знать, установлено ли какое-либо конкретное приложение на пользовательском устройстве, вы можете использовать PackageManager. Из класса Context (например, Activity или Service) вы можете вызвать getPackageManager(). Это дает вам множество методов, одним из которых является getPackageInfo(). Ниже приведен метод, который вы можете использовать. Вы можете назвать это следующим образом:

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;
}

Ответ 2

  • Вам нужно создать веб-страницу, на которую пользователь приземлится, если приложение не установлен. Скажем http://www.yourcompany.com/android/android_app_is_not_installed_landing_page.html

  • Приложение должно зарегистрироваться в манифесте XML файла www.yourcompany.com, схема "http" и параметр пути к приложению не устанавливают целевую страницу в фильтр намеренного манифеста:

    <!-- 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>
    
  • Теперь на веб-странице, которая вызывает ваше приложение, вы указываете полную ссылку на android_app_is_not_installed_landing_page.html, за которым следует параметры, которые вы хотите передать в приложение:

http://www.yourcompany.com/android/ android_app_is_not_installed_landing_page.html? ' > Нажмите здесь, чтобы начать приложение, если оно установлено

Если приложение установлено, оно будет запущено и передано полностью http://www.yourcompany.com/android/android_app_is_not_installed_landing_page.html? ' в том смысле, что ему нужно разобрать, извлечь  и делать все, что угодно должен делать.

Если приложение не установлено, откроется веб-браузер Android Установленная целевая страница "Android-приложение не установлена" http://www.yourcompany.com/android/android_app_is_not_installed_landing_page.html o , Эта страница должна сообщить пользователю об установке приложения и предоставить чтобы установить его с Android-рынка.

нашел это здесь: https://groups.google.com/forum/m/?fromgroups#!topic/android-developers/RGLHkGUpRoA