1.第一步,manifest里注册广播:
<!-- 注册设备管理器-->
<receiver
android:name=".DeviceManageReceiver"
android:permission="android.permission.BIND_DEVICE_ADMIN">
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
</intent-filter>
<meta-data
android:name="android.app.device_admin"
android:resource="@xml/device_admin" />
</receiver>
2.第二步,在res下新建xml,xml下新建device_admin.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 指定设备超级管理员所拥有的权限 -->
<uses-policies>
<disable-camera /> <!--停用相机-->
<encrypted-storage /><!--设置存储设备加密-->
<expire-password /><!--设置锁定屏幕密码的有效期-->
<force-lock /><!--强制锁屏-->
<limit-password /><!-- 限制密码类型-->
<reset-password /><!--重置密码-->
<watch-login /><!-- 监控屏幕解锁尝试次数-->
<wipe-data /><!--清除数据恢复出厂设置-->
<disable-keyguard-features/><!--禁用键盘保护功能-->
<set-global-proxy/><!--设置全局代理-->
</uses-policies>
</device-admin>
3.第三步,新建DeviceManageReceiver注册广播继承DeviceAdminReceiver类:
/**
* 注册设备管理器
*
* @author CJF
*/
public class DeviceManageReceiver extends DeviceAdminReceiver {
private final String TAG = "DeviceManageReceiver";
@Override
public void onEnabled(Context context, Intent intent) {
Log.d(TAG, "设备管理可用 ------onEnabled-------");
super.onEnabled(context, intent);
}
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "设备管理不可用 --------onReceive-----");
super.onReceive(context, intent);
}
@Override
public CharSequence onDisableRequested(Context context, Intent intent) {
// return super.onDisableRequested(context, intent);
// "这是一个可选的消息,警告有关禁止用户的请求";
return "关闭后不可使用一些功能";
}
}
4.第四步,在activity里申请激活:
DevicePolicyManager manager = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
//启动第三方组件
ComponentName componentName = new ComponentName(context, DeviceManageReceiver.class);
// 判断是否为设备管理器
if (manager.isAdminActive(componentName)) {
Log.d(TAG, "isDeviceAdminActive 已经激活");
} else {
Log.d(TAG, "isDeviceAdminActive 未激活");
//如果不是,则构建一个intent,action参数的意思为添加一个设备管理者
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, componentName);
context.startActivity(intent);
}
//--------------------------------------------------------------END----------------------------------------------------------