2013-06-20 33 views
0

我正在嘗試製作一個應用程序,該應用程序將在列表視圖中顯示所選應用程序。我發現這個鏈接How to get a list of installed android applications and pick one to run,但它只顯示設備上安裝的所有應用程序。 我想要展示的是我安裝在設備上的所有應用程序。所以我想知道是否可以使用軟件包名稱或應用程序名稱逐個選擇它們,然後使用軟件包管理器將它放在列表視圖中?獲取所選應用程序的列表以在另一個應用程序中打開

任何想法將不勝感激。

+0

你的意思是你想要獲得所有用戶安裝的應用程序或你所做的應用程序(你寫的應用程序是com.myapps。*)? – Milan

+0

是的!只有我製作的應用程序 –

回答

1

這是你可以做什麼,過濾包包含您的包名:

List<PackageInfo> packs = context.getPackageManager() 
      .getInstalledPackages(0); 

    public static final String MY_APP_PATTERN="com.myapps"; 

    for (int i = 0; i < packs.size(); i++) { 
     PackageInfo packageInfo = packs.get(i); 
     if (((packs.get(i).applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 1)) { 
      continue; 
     } 

     if(packageInfo.packageName.contains(MY_APP_PATTERN)){ 
      Lod.d(DEBUG_TAG,"This package belongs to me: "+packageInfo.packageName) 

      packageInfo.applicationInfo.loadLabel( 
       context.getPackageManager()).toString(); 
      packageInfo.packageName; 
      packageInfo.versionCode; 
      packageInfo.applicationInfo.loadIcon(context 
       .getPackageManager()) 
     } 
    } 

您也可以使用自己的模式匹配過濾開始。

+0

,但我怎麼才能得到誰包含MY_APP_PATTERN? –

+0

嘗試運行代碼並查看它的輸出。將MY_APP_PATTERN更改爲您的應用程序包通用名稱。 – Milan

+0

哇這真的有用!感謝接受並投票您的答案馬上! –

相關問題