How to get list of ALL apps (including System Apps)?

烈酒焚心 提交于 2019-12-06 11:43:33

问题


I am doing the following to get the list of apps and I am only getting apps that were installed but not ALL apps, including system apps.

I have tried the following:

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

and this:

    packageList1 = getPackageManager().getInstalledPackages(0);

For both cases, I am getting the same list of apps that I have installed on the phone.


回答1:


You are already getting a list of all installed applications including the system apps by calling this:

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

Those with the flags:

  • ApplicationInfo.FLAG_UPDATED_SYSTEM_APP
  • ApplicationInfo.FLAG_SYSTEM

are system apps. You can check for the flags like this:

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
    }
}



回答2:


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
    }
}


来源:https://stackoverflow.com/questions/23599550/how-to-get-list-of-all-apps-including-system-apps

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!