0
我一直在一個應用程序,我想選擇其中一個安裝的應用程序,然後我只需要將它存儲在ListPreference中(應用程序包),但似乎無法找到工作解決方案,任何幫助將是偉大的。填充ListPreference與已安裝的應用程序
我一直在一個應用程序,我想選擇其中一個安裝的應用程序,然後我只需要將它存儲在ListPreference中(應用程序包),但似乎無法找到工作解決方案,任何幫助將是偉大的。填充ListPreference與已安裝的應用程序
您可以使用PackageManager.getInstalledApplications
方法來獲取已安裝應用程序的列表。
及用途:
PackageManager.getApplicationLabel(ApplicationInfo)
獲得標籤的ListPreference.setEntries
。
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
對象。