2011-11-17 90 views
3

我的問題是如何獲取安裝在android上的所有應用程序的標籤。 當我試圖如何獲得已安裝應用程序的應用程序標籤

pm = (PackageManager)getApplicationContext().getPackageManager(); 
     List<ApplicationInfo> list = pm.getInstalledApplications(0); 
     for (ApplicationInfo appInfo : list) { 
     try { 
       deviceApps.add((String) appInfo.loadLabel(pm)); 
      } catch (Exception e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 

但事實並非如此work.Please幫助我。 問候

回答

9

下面是完整的代碼:

ArrayList<PackageInfo> res = new ArrayList<PackageInfo>(); 
PackageManager pm = ctx.getPackageManager(); 
List<PackageInfo> packs = pm.getInstalledPackages(0); 

for(int i=0;i<packs.size();i++) { 
    PackageInfo p = packs.get(i); 
    String description = (String) p.applicationInfo.loadDescription(pm); 
    String label= p.applicationInfo.loadLabel(pm).toString(); 
    String packageName = p.packageName; 
    String versionName = p.versionName; 
    String versionCode = p.versionCode; 
    String icon = p.applicationInfo.loadIcon(pm); 
//Continue to extract other info about the app... 
} 

注:添加此權限清單文件:

<uses-permission android:name="android.permission.GET_TASKS" /> 
+0

在標籤本地化? – seb

+0

plz解釋標籤本地化是什麼意思?檢查這個鏈接:http://developer.android.com/reference/android/content/pm/PackageInfo.html –

+1

我的意思是它是語言環境語言中的應用程序名稱?或者它是一種默認的(eng?)Applabel?如果不是,一個人如何能以不同的語言訪問應用程序標籤? – seb

相關問題