[Android] 申请系统权限 DevicePolicyManager

如何获取DevicePolicyManager实例

devicePolicyManager =(DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE); componentName = new ComponentName(this,MyAdmin.class);
首先要获取系统设备管理权限

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, "----这是一键锁屏激活界面-----");   
    startActivityForResult(intent, 0);
}

获取Componentname实例中用到了MyAdmin.class,该类是自己实现的一个receiver,继承DeviceAdminReceiver用于

public class MyAdmin extends DeviceAdminReceiver {
}

如果没有特殊的需求,可以直接空类就可以了,有特殊需求,在重写它的一些方法

然后我们需要在AndroidManifest.xml中定义该receiver,以及intent过滤

<receiver android:name=".MyAdmin">    
<meta-data 
  android:name="android.app.device_admin"
  android:resource="@xml/my_admin">   
</meta-data>    
<intent-filter>        
<action
  android:name="android.app.action.DEVICE_ADMIN_ENABLED"/>
</intent-filter>
</receiver>

android:resource=”@xml/my_admin” 我们在xml目录下的my_admin.xml中定义我们都需要过滤哪些系统操作
常用的主要有

<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
  <uses-policies>
      <limit-password />
      <watch-login />
      <reset-password />
      <force-lock />
      <wipe-data />
      <disable-camera/>
  </uses-policies>
</device-admin>

从上面的名字大致也知道都是些什么操作

如何执行重置锁屏密码呢?

devicePolicyManager.resetPassword(“123456”,0);
锁屏?
devicePolicyManager.lockNow();


作者:happydonkey
链接:https://www.jianshu.com/p/2ad877f5b000
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *