2011-05-22 91 views
7

我正在開發定義了一些意向性的過濾器的應用程序(在操作字符串的形式,例如com.example.project.UPLOAD)爲其他應用程序使用。考慮一個設備沒有我的應用程序,但是使用我的意圖過濾器的應用程序,創建的Intent將會按照文檔中描述的操作測試失敗。有什麼辦法可以防止這種情況的發生或提供更好的用戶體驗嗎?這裏有一些我能想到的,但不知道是否有可行的方法之一:如何讓用戶知道他/她需要安裝其他應用程序,我的應用程序依賴於

  1. 在安裝一個依賴於另一個應用程序來處理一些意圖的應用程序,建議用戶安裝應用程序,可以處理這個意圖
  2. 動態確定的意圖可以處理。如果沒有,啓動市場顯示可以處理意圖的應用程序

處理此問題的最佳方法是什麼?請儘可能提供一些實施參考。

+0

類似http://stackoverflow.com/questions/7724579/android-dependencies – 2016-02-19 20:32:21

回答

3

除了在賣場中提到這一點,我不知道你會如何去應用程序安裝過程中呈現的消息,(據我所知)沒有安裝時執行代碼不支持的方法。

如果其他應用程序使用的過濾器,那麼它是由他們來確保你的軟件包安裝。如果沒有安裝,你無法給他們任何東西。

他們可以測試一下,看看如果使用PackageManager安裝包,並調整自己的邏輯來通知用戶,當他們需要安裝你的包。例如:

private boolean isInstalled(){ 
    ComponentName comp = new ComponentName("com.yourpackagestuff", "com.yourpackagestuff.TestClass"); 
    Intent intentName = new Intent().setComponent(comp); 
    List <ResolveInfo> list = ctx.getPackageManager().queryIntentActivities(intentName, PackageManager.MATCH_DEFAULT_ONLY); 
    return list.size() > 0; 
} 

至少這是我如何去做的。

0

你可以嘗試調用的意圖和趕上ActivityNotFoundException如果拋出。如果它被拋出,你知道它不存在,所以你可以實現你的備份代碼。

相關問題