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クラスであり、それ以上のものではありません。説明に「」が表示されているので、エラーがそこにあることは不可能です。つまり、説明が何らかの理由でnullとして表示されます。

4

1 に答える 1

3

あなたのコードには何でも問題がないようです。この場合、アプリに説明があるというあなたの仮定は「エラー」のようです。は、アプリのPackageManagerマニフェストから何でも読み取ります。アプリの開発者は誰でも自由に説明を提供できます。この説明が使用されている場所がわからないため(PackageManagerを介してクエリを実行できるという事実を除いて)、ほとんどの人(私を含む)はその理由を理解していないようです。

それを確実にするために、HelloWorldアプリケーションを電話またはエミュレーターにインストールし、そのマニフェスト内に説明を提供することができます。あなたはあなたのコードでそれを取得する必要があります。

于 2012-06-23T19:29:05.863 に答える