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 на свой телефон или эмулятор и предоставить описание в своем манифесте. Вы должны получить это с вашим кодом.

Другие вопросы по тегам