2014-04-26 19 views
0

我一直在一個應用程序,我想選擇其中一個安裝的應用程序,然後我只需要將它存儲在ListPreference中(應用程序包),但似乎無法找到工作解決方案,任何幫助將是偉大的。填充ListPreference與已安裝的應用程序

回答

0

您可以使用PackageManager.getInstalledApplications方法來獲取已安裝應用程序的列表。

及用途:

  1. PackageManager.getApplicationLabel(ApplicationInfo)獲得標籤的ListPreference.setEntries

  2. ApplicationInfo.packageName獲取包名稱ListPreference.setEntryValues

如下所示:

PackageManager pm = getPackageManager(); 
List<ApplicationInfo> appList = pm.getInstalledApplications(
     PackageManager.GET_META_DATA); 

int count = appList.size(); 
String[] appLabels = new String[count]; 
String[] pkgNames = new String[count]; 

for (int i = 0; i < count ; i++) { 
    ApplicationInfo app = appList.get(i); 
    appLabels[i] = pm.getApplicationLabel(app).toString(); 
    pkgNames[i] = app.packageName; 
} 

prefList.setEntries(appLabels); 
prefList.setEntryValues(pkgNames); 

然後,你可以爲任何項目檢索包名稱,並使用PackageManager.getApplicationInfo得到那個包的ApplicationInfo對象。

相關問題