4

アプリのリストを取得するために次のことを行っていますが、システムアプリを含むすべてのアプリではなく、インストールされたアプリのみを取得しています。

私は次のことを試しました:

    packageList1 = getPackageManager().getInstalledPackages(PackageManager.GET_META_DATA);

この:

    packageList1 = getPackageManager().getInstalledPackages(0);

どちらの場合も、電話にインストールしたアプリと同じリストを取得しています。

4

2 に答える 2

9

これを呼び出すことにより、システムアプリを含むすべてのインストール済みアプリケーションのリストを既に取得しています。

List<ApplicationInfo> apps = getPackageManager().getInstalledPackages(0);

フラグを持つもの:

  • ApplicationInfo.FLAG_UPDATED_SYSTEM_APP
  • ApplicationInfo.FLAG_SYSTEM

システムアプリです。次のようにフラグを確認できます。

List<ApplicationInfo> apps = getPackageManager().getInstalledApplications(0);
for(ApplicationInfo app : apps) {
    if((app.flags & (ApplicationInfo.FLAG_UPDATED_SYSTEM_APP | ApplicationInfo.FLAG_SYSTEM)) > 0) {
        // It is a system app
    } else {
        // It is installed by the user
    }
}
于 2014-05-12T01:17:09.960 に答える