Android 申请系统权限 DevicePolicyManager

android2.2之后通过系统设备api对手机进行设备管理,这里我们介绍下DevicePolicyManager这个类,该类是android设备管理的主类,在获取到相关权限的基础上,可以对锁屏、屏幕亮度调节、锁屏密码、恢复出厂设置等系统级操作

下面用一个小例子实现apk锁屏效果
如何获取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();


相關文章

寫留言

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