一键锁屏源码

一、大体逻辑:点击应用图标,如果已经获得相应设备权限就直接进行锁屏lockNow()并finish()自身的activity;  如果还没有获得权限就去开启设备管理器获得权限。


二、项目代码:


1. 主程序java代码      MainActivity.java

package com.example.OneKeyLockScreen;

import com.example.absdb.R;
import android.os.Bundle;
import android.app.Activity;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Intent;


public class MainActivity extends Activity {


    private DevicePolicyManager dpm;
    private static final int REQUEST_CODE_ADD_DEVICE_ADMIN=100;

    //声明组件名
    private ComponentName componentName;
    
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
componentName = new ComponentName(this, AdminReceiver.class);
//获得设备管理器
dpm = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);

if (dpm.isAdminActive(componentName)) {
//如果获得了权限直接锁屏
dpm.lockNow();
finish();
}else{
//如果没获得权限就执行startAddDeviceAdminAty()开启超级设备管理器
startAddDeviceAdminAty();
}
setContentView(R.layout.activity_main);
}


//开启设备管理器
private void startAddDeviceAdminAty(){
    Intent i = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
    //权限列表
i.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
componentName);
//权限描述
        i.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
                "感谢使用“一键锁屏”。本应用需要激活设备管理器(任何一键锁屏软件都需要该操作),激活即可使用,绝对安全,放心使用");


startActivity(i);
    }


//进行锁屏
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {


    boolean active = dpm.isAdminActive(componentName);  
        if(!active){//若无权限  
        startAddDeviceAdminAty();//去获得权限  
        dpm.lockNow();;//并锁屏  
        }  
        if (active) {  
        dpm.lockNow();
    finish();//直接锁屏  
        }  
    super.onActivityResult(requestCode, resultCode, data);
    }

   
}


2. 新建一个设备管理的接收者去继承DeviceAdminReceiver  

AdminReceiver.java


package com.example.OneKeyLockScreen;

import android.app.admin.DeviceAdminReceiver;

public class AdminReceiver extends DeviceAdminReceiver {


}


3.在清单文件对 AdminReceiver广播接收者进行注册

<receiver android:name="com.example.OneKeyLockScreen.AdminReceiver"
        android:permission="android.permission.BIND_DEVICE_ADMIN">


        <meta-data android:name="android.app.device_admin"
                       android:resource="@xml/device_admin" />


        <intent-filter>
        <action android:name="android.app.action.DEVICE_ADMIN_ENABLED"/>
        </intent-filter>
        </receiver>


4.  在res下新建文件夹xml,并在里面新建文件device_admin.xml

<?xml version="1.0" encoding="utf-8"?>
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
    <uses-policies>
        <limit-password />
        <watch-login />
        <reset-password />
        <force-lock />
        <wipe-data />
    </uses-policies>
</device-admin>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值