2010-10-13 225 views
22

我有一個應用程序在電話上註冊自定義URI的處理程序。我可以通過從手機網頁鏈接到「myapp:// act/launch」來啓動應用程序。這僅在我的應用程序安裝在設備上時有效。 我想要做的就是檢測瀏覽器是否支持URI方案,然後提示我自己的消息說:「請下載應用程序等...」,如果沒有找到URI方案的處理程序。檢測應用程序是否安裝?

有沒有一種方法可以從Web瀏覽器中檢測或查找手機上URL計劃處理程序的列表?

+0

可能的複製(http://stackoverflow.com/questions/18752202/check-if-application-is-installed-android ) – 2016-01-12 13:48:45

回答

61

Android How-to's

如果你需要知道,如果是安裝在用戶的設備上的特定應用程序,你可以使用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; 
} 
+13

他特別要求通過網絡瀏覽器完成。 – 2012-04-19 15:31:42

+3

無論如何:「uri」是該方法的正確參數名稱嗎? packageName會更好嗎? – 2012-08-03 11:51:55

+0

@GlennBech:是的,_packageName_比_uri_更具描述性 – 2012-08-13 07:38:52

14
  1. 您需要創建一個網頁上,如果應用程序是不是 用戶安裝的土地。說http://www.yourcompany.com/android/android_app_is_not_installed_landing_page.html

  2. 的應用程序需要在清單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> 
    
  3. 在網頁中調用您的應用程序指定完整鏈接 android_app_is_not_installed_landing_page.html其次是無論 PARAMS要傳遞給應用

    現在:

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Ø 。該頁面應該向用戶發送消息以安裝該應用並提供 鏈接以從Android Marketplace進行安裝。

發現這個寫在這裏了:的[檢查是否安裝了應用程序 - Android電子] https://groups.google.com/forum/m/?fromgroups#!topic/android-developers/RGLHkGUpRoA

+2

那麼,爲什麼驅動器downvote,因爲它實際上回答他問的問題? – boatcoder 2013-11-19 21:05:16

相關問題