0

重複の可能性:
アプリが Android の非システム アプリかどうかを確認するにはどうすればよいですか?

現時点では、このコードは Android システムや時計などのシステム アプリを含むすべてを返します。

public List<ApplicationInfo> getApps() {
        final PackageManager pm = context.getPackageManager();
        List<ApplicationInfo> packages = pm
                .getInstalledApplications(PackageManager.GET_META_DATA);
        return packages;
    }

これらのアプリとユーザーがインストールしたアプリを区別するにはどうすればよいですか?

4

1 に答える 1

10

こんにちは、以下のコードを使用できます

 for(ApplicationInfo app : apps) {
        //checks for flags; if flagged, check if updated system app
        if((app.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) == 1) {
            installedApps.add(app);
        //it's a system app, not interested
        } else if ((app.flags & ApplicationInfo.FLAG_SYSTEM) == 1) {
            //Discard this one
        //in this case, it should be a user-installed app
        } else {
            installedApps.add(app);
        }
    }
于 2012-11-16T14:19:55.053 に答える