DevicePolicyManager 类:设备策略管理器 安全设备
Android 2.2 SDK提供了一个可管理和操作设备的API叫DevicePolicyManager,
使用这个API你可以接管手机的应用权限,对手机做出很多大胆的操 作,
比如锁屏、恢复出厂设置、设置密码、强制清除密码,修改密码、设置屏幕灯光渐暗时间间隔等操作。
这个API让你的程序直接掌握了系统的命脉。
但是,同样的道理,别人也可以做类似的程序,各程序之间的权限是不起冲突的~
首先,要想调用DevicePolicyManager,那么我们必须先要注册一个admin,如何注册呢,也是需要通过代码去注册。
有了admin权限,我们才可能对系统进行上述功能的操作。
其次,程序在启动激活的时候,会给用户相应提示,只有当用户点击“激活”后,我们的代码才能真正的运转。
再有,就是创建权限啊,监听了。
//dpm.lockNow();// 锁屏
//dpm.resetPassword(password, 0);// 设置屏蔽密码要和上面这个方法一起用
//dpm.removeActiveAdmin(who);取消某个应用的安全设备权限
//dpm.setPasswordMinimumLength(admin, length);//设置密码长度
//dpm.setPasswordHistoryLength(admin, length);
1:编写调用方法
//一键锁屏
public void lockscreen(View view){
DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
ComponentName who = new ComponentName(this,MyAdmin.class);//2:创建 MyAdmin.class这个类
if(dpm.isAdminActive(who)){//检查这个设置是否添加到安全设备中
dpm.lockNow();//锁屏
//dpm.resetPassword("", 0);//设置屏蔽密码,要和dpm.lockNow();方法一起用才会立刻锁定屏幕
//清除Sdcard上的数据
//dpm.wipeData(DevicePolicyManager.WIPE_EXTERNAL_STORAGE);
//恢复出厂设置
//dpm.wipeData(0);
}else{
//激活这个应用添加到设备管理器
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
//我要激活谁
ComponentName mDeviceAdminSample = new ComponentName(this,MyAdmin.class);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mDeviceAdminSample);
//劝说用户开启管理员权限
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,"哥们开启我可以一键锁屏,你的按钮就不会经常失灵");
startActivity(intent);
//.清除激活这个应用添加到设备管理器
//ComponentName mDeviceAdminSample = new ComponentName(this,MyAdmin.class);
//dpm.removeActiveAdmin(mDeviceAdminSample);
}
}
2:创建 广播类MyAdmin 继承DeviceAdminReceiver
/**
* 特殊的广播接收者
* @author Administrator
*
*/
public class MyAdmin extends DeviceAdminReceiver {
}
3:在清单文件中配置这个特殊的广播接收者,用于监听权限的变化
<receiver
android:name="com.itheima.lockscreen.MyAdmin"
android:description="@string/sample_device_admin_description" //这里文字要按ctrl+1在values中添加这个字符串
android:label="@string/sample_device_admin"
android:permission="android.permission.BIND_DEVICE_ADMIN" >
<meta-data
android:name="android.app.device_admin"
android:resource="@xml/device_admin_sample" /> //5:在/res/xml 下创建device_admin_sample.xml
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
</intent-filter>
</receiver>
4:在res目录下创建xml目录
5:在/res/xml 下创建device_admin_sample.xml 表示这个应用可以管理的权限清单。
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
<uses-policies>
<limit-password />
<watch-login />
<reset-password />
<force-lock />
<wipe-data />
<expire-password />
<encrypted-storage />
<disable-camera />
</uses-policies>
</device-admin>
版权声明:本文为博主原创文章,未经博主允许不得转载。
Android wiki : 18.DevicePolicyManager锁屏和清除数据
原文:http://blog.csdn.net/u014352836/article/details/46771367