轻松打造精美Android锁屏程序

Home / Article MrLee 2015-7-23 5415

QQ截图20150723103308

一直下载网上的锁屏程序,不过好多都有暗坑。背地里面弹广告,上传通讯录…… 自为一个Android开发人员绝不能容忍这种事情发生在自己身上,果断打开eclipse或者Android Studio自己开发一个,还能放自己喜欢的图标。总共代码量估计也就百来行! 代码如下: Activity.java
package com.lee.onekeylock;
import android.app.Activity;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
public class MainActivity extends Activity {
	private static final int REQUEST_CODE = 10000;
	private DevicePolicyManager policyManager;
	private ComponentName componentName;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		lockScreen();
	}
	private void lockScreen() {
		// 获取设备管理服务
		policyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
		// AdminReceiver 继承自 DeviceAdminReceiver
		componentName = new ComponentName(this, AdminReceiver.class);
		boolean active = policyManager.isAdminActive(componentName);
		if (!active) {
			// 若无权限
			activeManage(componentName);// 去获得权限
		} else {
			policyManager.lockNow();// 直接锁屏
			finish();
		}
	}
	private void activeManage(ComponentName componentName) {
		Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
		intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, componentName);
		intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
				"请求锁屏激活,请确认激活才能锁屏!");
		startActivityForResult(intent, REQUEST_CODE);
	}
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		// 获取权限成功,立即锁屏并finish自己,否则继续获取权限
		if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK) {
			policyManager.lockNow();
			finish();
		} else {
			activeManage(componentName);
		}
		super.onActivityResult(requestCode, resultCode, data);
	}
	@Override
	protected void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
		System.exit(0);// 退出程序
	}
}

AdminReceiver.java
package com.lee.onekeylock;
import android.app.admin.DeviceAdminReceiver;
public class AdminReceiver extends DeviceAdminReceiver{}

lock_screen.xml


    
        
        
    


AndroidManifest.xml


    
    
        
            
                
                
            
        
        
        
            
            
                
            
        
    


style.xml

    
    

以上风格启动的时候不会有一闪的现象。
App下载:OneKeyLock.apk 工程下载:OneKeyLock

本文链接:https://www.it72.com/3731.htm

推荐阅读
最新回复 (1)
  • lm5111 2015-7-23
    引用 2
    style.xml是我第二次编辑的时候加进去的,下载的工程需要自己手动添加才可以实现透明的效果。
返回