我可以使用下面的代码成功获取应用程序的标题,版本和图标,但由于某种原因,描述始终返回为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类,它只设置给它的值,仅此而已。这个错误不可能存在,因为我确实得到了一个“”来描述。因为某种原因,描述会变为空。
答案 0 :(得分:3)
您的代码似乎没有问题。您的假设是,任何App都有描述似乎是这种情况下的“错误”。 PackageManager
从应用程序的清单中读取任何内容。应用程序的任何开发人员都可以免费提供描述。似乎大多数人(包括我)都没有理由这样做,因为我不知道使用这种描述的任何地方(除了可以通过PackageManager查询它的事实)。
要做到这一点,您可以在手机或模拟器上安装HelloWorld应用程序,并在其清单中提供说明。你应该用你的代码得到它。