声明设备管理器
Java
public class SuperAdmin extends DeviceAdminReceiver {
}
配置文件
<receiver android:name=".SuperAdmin"
android:label="@string/sample_device_admin" // 设备管理器名字
android:description="@string/sample_device_admin_description"
// 设备管理器描述 android:permission="android.permission.BIND_DEVICE_ADMIN">
<meta-data android:name="android.app.device_admin"
android:resource="@xml/device_admin_sample" /> // 权限配置
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
</intent-filter>
</receiver>
<receiver android:name=".SuperAdmin"
android:label="@string/sample_device_admin" // 设备管理器名字
android:description="@string/sample_device_admin_description"
// 设备管理器描述android:permission="android.permission.BIND_DEVICE_ADMIN">
<meta-data android:name="android.app.device_admin"
android:resource="@xml/device_admin_sample" /> // 权限配置
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
</intent-filter>
</receiver>
XMl
目录: 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>
<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>
使用设备管理器
DevicePolicyManager devicePolicyManager = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
// 清除数据
devicePolicyManager.wipeData(DevicePolicyManager.WIPE_EXTERNAL_STORAGE);
// 重置密码
devicePolicyManager.resetPassword("123",0);
// 立即锁屏
devicePolicyManager.lockNow();
取消设备管理器
devicePolicyManager.removeActiveAdmin(componentName);
判断是否激活设备管理器
// 设备组件
ComponentName componentName = new ComponentName(this, SuperAdmin.class);
DevicePolicyManager devicePolicyManager = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
if (devicePolicyManager.isAdminActive(componentName)) {
}
打开激活设备设备管理器页面
public class DevicePolicyAcitivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// 设备组件
ComponentName componentName = new ComponentName(this, SuperAdmin.class);
// 添加设备管理器意图动作
Intent deviceIntent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
// 设备管理器激活组件
deviceIntent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, componentName);
// 设备管理器激活所需描述信息
deviceIntent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "请激活设备管理器");
// 开启设备管理器acitivity
startActivity(deviceIntent);
// 在当前界面未开启时就关闭
finish();
super.onCreate(savedInstanceState);
}
}