android 一键锁屏

来源:互联网 发布:印刷厂排版软件 编辑:程序博客网 时间:2024/06/01 22:13

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

<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是为了改变下获取状态
@Overrideprotected 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);



原创粉丝点击