113.Android 简单的激活设备管理器

 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----------------------------------------------------------

猜你喜欢

转载自blog.csdn.net/weixin_42061754/article/details/127509080