我一直在开发一个应用程序,我想选择其中一个已安装的应用程序,然后我只需要将它(应用程序包)存储在ListPreference中,但似乎无法找到一个可行的解决方案,Any帮助会很棒。
答案 0 :(得分:0)
您可以使用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
对象。