0

我可以使用下面的代码成功获取应用程序的标题、版本和图标,但由于某种原因,描述始终返回为 null。任何帮助表示赞赏。

相关代码:-

List<PackageInfo> packs = packageManager.getInstalledPackages(0);

  for(int i=0; i < packs.size(); i++) {
     PackageInfo p = packs.get(i);
     // skip system apps if they shall not be included
     if ((!includeSysApps) && ((a.flags & ApplicationInfo.FLAG_SYSTEM) == 1)) {
        continue;
     }
     App app = new App();
     app.setTitle(p.applicationInfo.loadLabel(packageManager).toString());
     app.setPackageName(p.packageName);
     app.setVersionName(p.versionName);
     app.setVersionCode(p.versionCode);
     CharSequence description = p.applicationInfo.loadDescription(packageManager); //error here?
     app.setDescription(description != null ? description.toString() : "");
     apps.add(app);
  }

App 类只是一个 bean 类,它只是设置给它的值,仅此而已。错误不可能在那里,因为我确实得到了一个“”作为描述。即描述由于某种原因出现为空。

4

1 回答 1

3

您的代码似乎没有问题。在这种情况下,您假设任何应用程序都有描述似乎是“错误”。从应用程序的PackageManager清单中读取任何内容。任何应用程序的开发者都可以自由地对其进行描述。似乎他们中的大多数人(包括我)没有理由这样做,因为我不知道在任何地方使用了这个描述(除了可以通过 PackageManager 查询它的事实之外)。

要做到这一点,您可以在手机或模拟器上安装 HelloWorld 应用程序,并在其清单中提供描述。你应该用你的代码得到它。

于 2012-06-23T19:29:05.863 回答