且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Android一键锁屏开发全过程

更新时间:2022-08-22 17:28:04

一、项目简介:

项目:《Android 一键锁屏》

开发周期:4天

代码量:100行

————————————————————————

二、项目流程:

 


Android一键锁屏开发全过程


001 三、项目代码
002 1、主程序代码:
003 Java代码 
004 private DevicePolicyManager policyManager; 
005 private ComponentName componentName; 
006    
007 @Override 
008 protected void onCreate(Bundle savedInstanceState) { 
009         super.onCreate(savedInstanceState); 
010         setContentView(R.layout.locklayout); 
011            
012         //获取设备管理服务 
013         policyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE); 
014            
015         //AdminReceiver 继承自 DeviceAdminReceiver 
016         componentName = new ComponentName(this, AdminReceiver.class); 
017            
018         mylock(); 
019     //  killMyself ,锁屏之后就立即kill掉我们的Activity,避免资源的浪费;    
020         android.os.Process.killProcess(android.os.Process.myPid());     
021            
022
023   
024 2、其中,mylock()为:
025 Java代码 
026 private void mylock(){ 
027        
028     boolean active = policyManager.isAdminActive(componentName); 
029     if(!active){//若无权限 
030         activeManage();//去获得权限 
031         policyManager.lockNow();//并锁屏 
032     
033     if (active) { 
034             policyManager.lockNow();//直接锁屏 
035     
036
037  3、activeManage()代码为:
038 Java代码 
039 private void activeManage() { 
040         // 启动设备管理(隐式Intent) - 在AndroidManifest.xml中设定相应过滤器 
041         Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); 
042            
043         //权限列表 
044         intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, componentName); 
045    
046         //描述(additional explanation) 
047                 intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "------ 其他描述 ------"); 
048    
049                 startActivityForResult(intent, 0); 
050
051   
052 4、AndroidManifest.xml
053 Java代码 
054 <?xml version="1.0" encoding="utf-8"?> 
055 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
056       package="cn.hnu" 
057       android:versionCode="1" 
058       android:versionName="1.0"
059     <application android:icon="@drawable/icon" android:label="@string/app_name"
060         <activity android:name=".LockFirst" 
061                   android:label="@string/app_name"
062             <intent-filter> 
063                 <action android:name="android.intent.action.MAIN" /> 
064                 <category android:name="android.intent.category.LAUNCHER" /> 
065             </intent-filter> 
066         </activity> 
067         <!-- 设备管理 --> 
068         <receiver android:name=".AdminReceiver" 
069                   android:label="@string/app_name" 
070                   android:description="@string/app_name" 
071                   android:permission="android.permission.BIND_DEVICE_ADMIN"
072                 <meta-data android:name="android.app.device_admin" 
073                            android:resource="@xml/lock_screen" /> 
074                    <intent-filter> 
075                         <action 
076                            android:name="android.app.action.DEVICE_ADMIN_ENABLED" /> 
077                    </intent-filter> 
078         </receiver> 
079     </application> 
080        
081    
082 </manifest>  
083  5、其中lock_screen.xml(lock_screen.xml文件放在res/xml文件夹下)代码为:
084 Java代码 
085 <?xml version="1.0" encoding="UTF-8"?>  
086 <device-admin 
087   xmlns:android="http://schemas.android.com/apk/res/android"
088     <uses-policies> 
089         <!-- 强行锁定  在里仅这个是需要的--> 
090         <force-lock /> 
091         <!-- 清除所有数据(恢复出厂设置) --> 
092         <wipe-data /> 
093          <!-- 重置密码 --> 
094         <reset-password /> 
095         <!-- 限制密码选择 --> 
096          <limit-password /> 
097          <!-- 监控登录尝试 --> 
098           <watch-login /> 
099     </uses-policies> 
100 </device-admin>

四、项目预览

    
Android一键锁屏开发全过程
 请求权限界面

 


Android一键锁屏开发全过程
 锁屏成功

 

五、附注

   程序运行在android2.2以上平台(含2.2)