Android一键锁屏开发全过程


一、项目简介:
 
项目:《Android 一键锁屏》
 
开发周期:4天
 
代码量:100行
 
二、项目流程:
 


三、项目代码
 
1、主程序代码:
 1.private DevicePolicyManager policyManager;  
 2.private ComponentName componentName;  
 3. 
 4.@Override 
 5.protected void onCreate(Bundle savedInstanceState) {  
 6.        super.onCreate(savedInstanceState);  
 7.        setContentView(R.layout.locklayout);  
 8.          
 9.        //获取设备管理服务  
 10.        policyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);  
 11.          
 12.        //AdminReceiver 继承自 DeviceAdminReceiver  
 13.        componentName = new ComponentName(this, AdminReceiver.class);  
 14.          
 15.        mylock();  
 16.    //  killMyself ,锁屏之后就立即kill掉我们的Activity,避免资源的浪费;     
 17.        android.os.Process.killProcess(android.os.Process.myPid());      
 18.          
 19.} 
 
2、其中,mylock()为:
 1.private void mylock(){  
 2.      
 3.    boolean active = policyManager.isAdminActive(componentName);  
 4.    if(!active){//若无权限  
 5.        activeManage();//去获得权限  
 6.        policyManager.lockNow();//并锁屏  
 7.    }  
 8.    if (active) {  
 9.            policyManager.lockNow();//直接锁屏  
 10.    }  
 11.} 
 
3、activeManage()代码为:
 1.private void activeManage() {  
 2.        // 启动设备管理(隐式Intent) - 在AndroidManifest.xml中设定相应过滤器  
 3.        Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);  
 4.          
 5.        //权限列表  
 6.        intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, componentName);  
 7. 
 8.        //描述(additional explanation)  
 9.                intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "------ 其他描述 ------");  
 10. 
 11.                startActivityForResult(intent, 0);  
 12.} 
 
4、AndroidManifest.xml
 1.<?xml version="1.0" encoding="utf-8"?>  
 2.<manifest xmlns:android="http://schemas.android.com/apk/res/android
 3.      package="cn.hnu" 
 4.      android:versionCode="1" 
 5.      android:versionName="1.0">  
 6.    <application android:icon="@drawable/icon" android:label="@string/app_name">  
 7.        <activity android:name=".LockFirst" 
 8.                  android:label="@string/app_name">  
 9.            <intent-filter>  
 10.                <action android:name="android.intent.action.MAIN" />  
 11.                <category android:name="android.intent.category.LAUNCHER" />  
 12.            </intent-filter>  
 13.        </activity>  
 14.        <!-- 设备管理 -->  
 15.        <receiver android:name=".AdminReceiver" 
 16.                  android:label="@string/app_name" 
 17.                  android:description="@string/app_name" 
 18.                  android:permission="android.permission.BIND_DEVICE_ADMIN">  
 19.                <meta-data android:name="android.app.device_admin" 
 20.                           android:resource="@xml/lock_screen" />  
 21.                   <intent-filter>  
 22.                        <action  
 23.                           android:name="android.app.action.DEVICE_ADMIN_ENABLED" />  
 24.                   </intent-filter>  
 25.        </receiver>  
 26.    </application>  
 27.      
 28. 
 29.</manifest>  
 
 5、其中lock_screen.xml(lock_screen.xml文件放在res/xml文件夹下)代码为:
 1.<?xml version="1.0" encoding="UTF-8"?>   
 2.<device-admin  
 3.  xmlns:android="http://schemas.android.com/apk/res/android">  
 4.    <uses-policies>  
 5.        <!-- 强行锁定  在里仅这个是需要的-->  
 6.        <force-lock />  
 7.        <!-- 清除所有数据(恢复出厂设置) -->  
 8.        <wipe-data />  
 9.         <!-- 重置密码 -->  
 10.        <reset-password />  
 11.        <!-- 限制密码选择 -->  
 12.         <limit-password />  
 13.         <!-- 监控登录尝试 -->  
 14.          <watch-login />  
 15.    </uses-policies>  
 16.</device-admin>  
 


四、项目预览
 


请求权限界面
 


锁屏成功
 
五、附注
 
程序运行在Android2.2以上平台(含2.2)
 

 

 

上一页
1
2

 

本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2012-01/52443p2.htm

本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2012-01/52443.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 4.0 及以上版本中,可以使用 DevicePolicyManager 类来实现一键锁屏功能。以下是实现的步骤: 1. 在 AndroidManifest.xml 文件中添加如下权限: ```xml <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/> <uses-permission android:name="android.permission.RESET_PASSWORD"/> <uses-permission android:name="android.permission.WAKE_LOCK"/> <uses-permission android:name="android.permission.WRITE_SETTINGS"/> ``` 2. 创建一个继承自 DeviceAdminReceiver 的广播接收器类: ```java public class MyDeviceAdminReceiver extends DeviceAdminReceiver { } ``` 3. 在项目中获取 DevicePolicyManager 对象: ```java DevicePolicyManager mDPM = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE); ``` 4. 在 Activity 中注册广播接收器(可以在 onCreate 方法中调用): ```java ComponentName mAdminName = new ComponentName(this, MyDeviceAdminReceiver.class); Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mAdminName); startActivityForResult(intent, 0); ``` 5. 调用 DevicePolicyManager 的 lockNow 方法实现一键锁屏: ```java if (mDPM.isAdminActive(mAdminName)) { mDPM.lockNow(); } else { Toast.makeText(this, "请先激活设备管理器", Toast.LENGTH_SHORT).show(); } ``` 注意:在实现一键锁屏功能时,需要用户同意激活设备管理器。如果用户没有激活设备管理器,则无法实现一键锁屏功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值