Android 设备管理器 理解和使用

DevicePolicyManager,设备策略管理器。顾名思义,DevicePolicyManager为Android系统的管理提供了一套策略,有三种方案

  • Device Administration, 设备管理员
  • Profile Owner, 配置文件所有者
  • Device Owner, 设备所有者

Device Admin

过用户授权自己的应用设备管理权限后,可以在代码中修改一些系统设置,需要在应用中配置一个xml,xml中声明相应的权限,这些权限基本代表了DeviceAdmin可以使用的能力



  
    
    
    
    
    
    
    
    
    >
    
    
    
    
    
    
    
  

ProfileOwner

ProfileOwner 译为配置文件所有者,在Android5.0系统推出。ProfileOwner涵盖了所有DeviceAdmin用户的管理能力。Google为了细化行业领域的管理而推出了这一组API,也被称为Android for work,旨在让用户在体验上可以轻松的兼顾生活和工作,可以将你的个人信息和工作信息等进行分类,随时查看

具体功能如下

  • 隐藏应用,可停用制定应用并且不再界面显示,除非调用相应API恢复可用,否则该应用永远无法运行。可以用来开发应用黑白名单功能。

  • 禁止卸载应用,被设置为禁止卸载的应用将成为受保护应用,无法被用户卸载,除非取消保护。

  • 复用系统APP

  • 修改系统设置

  • 调节静音

  • 修改用户图标

  • 修改权限申请的策略

  • 限制指定应用的某些功能

  • 允许辅助服务

  • 允许输入法服务

  • 禁止截图

  • 禁止蓝牙访问联系人

DeviceOwner

DeviceOwner, 设备所有者,Android5.0引入。同样的,DeviceOwner涵盖了所有DeviceAdmin用户的管理能力,是一类特殊的设备管理员,具有在设备上创建和移除辅助用户以及配置全局设置的额外能力。DeviceOwner完善了行业用户的MDM(Mobile Device Manager)行业管理能力,主要能力如下:

  • 设置网络时间同步, 设置后无法从Settings取消
  • 用户管理, 创建用户、删除用户等
  • 管理账号系统
  • 清除锁屏
  • 设置Http代理
  • 禁止状态栏
  • 通知等待更新
  • 禁用相机
  • 隐藏应用
  • 禁止卸载应用
  • 复用系统APP
  • 获取wifi地址
  • 重启系统

Demo演示Device Admin

  • 激活设备管理器
  • 取消激活设备管理器
  • 设置解锁方式 不需要激活就可以运行
  • 设置解锁方式 需要激活设备管理器
  • 立即锁屏
  • 设置5秒后锁屏 充电状态下不管用
  • 清除数据 恢复出厂设置
  • 修改锁密码(PIN)
  • 禁用相机

开启设备管理器流程

  1. 编写广播接收器DeviceReceiver继承DeviceAdminReceiver

    public class DeviceReceiver extends DeviceAdminReceiver {
        @Override
        public void onEnabled(Context context, Intent intent) {
            // 设备管理:可用
            Toast.makeText(context, "设备管理:可用", Toast.LENGTH_SHORT).show();
        }
    @Override
    public void onDisabled(final Context context, Intent intent) {
        // 设备管理:不可用
        Toast.makeText(context, "设备管理:不可用", Toast.LENGTH_SHORT).show();
    
     }
    }
    
  1. AndroidManifest注册广播接收器

         
            
                
                
                    
                    
                    
    
                    
                
            
            
    
  1. xml下添加文件device_admin.xml

    
    
        
            
            
            
            
            
            
            
            
            
            
            
            
            
            
    
            
    
            
            
    
        
    
    
  1. 激活设备管理器

       // 激活设备管理器
        public void enableDeviceManager() {
            //判断是否激活  如果没有就启动激活设备
            if (!devicePolicyManager.isAdminActive(componentName)) {
                Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
    
                intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, componentName);
                intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
                        mContext.getString(R.string.dm_extra_add_explanation));
                mContext.startActivity(intent);
            } else {
                Toast.makeText(mContext, "设备已经激活,请勿重复激活", Toast.LENGTH_SHORT).show();
            }
        }
    
  1. 移除设备管理器

       // 取消激活设备管理器
        public void disableDeviceManager() {
            devicePolicyManager.removeActiveAdmin(componentName);
        }
    
    

详细代码

https://github.com/ddssingsong/DevicePolicyManager

你可能感兴趣的:(Android 设备管理器 理解和使用)