Android: applicationInfo.loadDescription() всегда возвращает ноль
Я могу успешно получить заголовок, версию и значок приложения, используя приведенный ниже код, но по какой-то причине описание всегда возвращается как нулевое. Любая помощь приветствуется.
Соответствующий код:-
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-класс, который просто устанавливает значения, данные ему, и ничего более. Невозможно, чтобы ошибка заключалась в этом, так как я действительно получаю "" за описание. т. е. по некоторым причинам описание становится пустым.
1 ответ
Кажется, с вашим кодом все в порядке. Ваше предположение, что любое приложение имеет описание, кажется "ошибкой" в этом случае. PackageManager
читает что-нибудь из Манифеста Приложения. Любой разработчик приложения может предоставить описание. Кажется, что большинство из них (включая меня) не видят причины для этого, потому что я не знаю ни одного места, где используется это описание (кроме того факта, что можно запросить его через PackageManager).
Чтобы убедиться в этом, вы можете установить приложение HelloWorld на свой телефон или эмулятор и предоставить описание в своем манифесте. Вы должны получить это с вашим кодом.