Android:获取已以设备管理员身份安装的应用程序包信息列表



我需要获取已作为设备管理员安装的应用程序的软件包信息列表。您共享的代码应该支持来自 Adroid API 版本 8。

以下代码将为我提供已下载应用程序信息的列表,但我需要在列表中添加额外的过滤器,因为该应用程序应该是设备管理员启用的应用程序

List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);
    for(int i=0;i<packs.size();i++) {
        PackageInfo p = packs.get(i);
        if ((!getSysPackages) && (p.versionName == null)) {
            continue ;
        }
        PInfo newInfo = new PInfo();
        newInfo.appname = p.applicationInfo.loadLabel(getPackageManager()).toString();
        newInfo.pname = p.packageName;
        newInfo.versionName = p.versionName;
        newInfo.versionCode = p.versionCode;
        newInfo.icon = p.applicationInfo.loadIcon(getPackageManager());
        res.add(newInfo);
    }

提前致谢

这里是解决方案:

DevicePolicyManager devicePolicyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
List<ComponentName> activeAdmins =   devicePolicyManager.getActiveAdmins();
if (activeAdmins != null){
   for (ComponentName admin : activeAdmins){
            admin.getPackageName();                  
           }
}

我们将获得使用它的应用程序列表

final PackageManager pm = getPackageManager(); 
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
for (ApplicationInfo packageInfo : packages) {
    Log.d(TAG, "Installed package :" + packageInfo.packageName);   
}

相关内容

  • 没有找到相关文章

最新更新