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();