使用已安装的应用程序填充ListPreference

时间:2014-04-26 20:37:48

标签: java android listpreference

我一直在开发一个应用程序,我想选择其中一个已安装的应用程序,然后我只需要将它(应用程序包)存储在ListPreference中,但似乎无法找到一个可行的解决方案,Any帮助会很棒。

1 个答案:

答案 0 :(得分:0)

您可以使用PackageManager.getInstalledApplications方法获取已安装的应用程序列表。

并使用:

  1. PackageManager.getApplicationLabel(ApplicationInfo)获取ListPreference.setEntries的标签。

  2. ApplicationInfo.packageName获取ListPreference.setEntryValues的包名称。

  3. 如下所示:

    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对象。