android 一键锁屏

本文介绍如何在Android应用中实现设备管理权限的申请与撤销过程,包括配置广播接收器、创建XML配置文件及处理Activity中的权限逻辑。

清单文件加入一个广播接收器

<receiver
    android:name=".receiver.LockScreenReceiver">
    <meta-data
        android:name="android.app.device_admin"
        android:resource="@xml/lock_screen"
        />
    <intent-filter>
        <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
        <action android:name="android.app.action.DEVICE_ADMIN_DISABLED" />
    </intent-filter>
</receiver>


上面名为lock_screen的xml的引用需要在xml文件夹下建一个文件,里面内容为
<?xml version="1.0" encoding="utf-8"?>
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
    <uses-policies>
        <force-lock/>
    </uses-policies>
</device-admin>
广播接收器内容
public class LockScreenReceiver extends DeviceAdminReceiver {
    @Override
    public void onEnabled(Context context, Intent intent) {
        super.onEnabled(context, intent);
        ToastUtil.toastShort("已获得设备管理者权限");
    }

    @Override
    public void onDisabled(Context context, Intent intent) {
        super.onDisabled(context, intent);
        ToastUtil.toastShort("取消了设备管理者权限");
    }
}
然后开始处理activity中的内容
首先初始化需要的对象
DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
ComponentName cn = new ComponentName(this, LockScreenReceiver.class);

通过dpm.isAdminActive(cn)方法判断是否获取设备管理者权限

以下方法用来获得设备管理者权限
Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,cn);
startActivityForResult(intent,1);

使用startActivityForResult是为了改变下获取状态
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(dpm.isAdminActive(cn))
    	admin_station.setText("已获得权限");
    else
     	admin_station.setText("未获得权限");
}
取消管理员权限
dpm.removeActiveAdmin(cn);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值