-2

我需要获取已作为设备管理员安装的应用程序的包信息列表。您共享的代码应支持 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);
    }

提前致谢

4

2 回答 2

1

这里的解决方案:

DevicePolicyManager devicePolicyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
List<ComponentName> activeAdmins =   devicePolicyManager.getActiveAdmins();
if (activeAdmins != null){
   for (ComponentName admin : activeAdmins){
            admin.getPackageName();                  
           }
}
于 2015-11-19T09:54:51.520 回答
0

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

final PackageManager pm = getPackageManager(); 
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);

for (ApplicationInfo packageInfo : packages) {
    Log.d(TAG, "Installed package :" + packageInfo.packageName);   
}
于 2014-01-02T13:54:07.623 回答