android锁屏软件制作

转载请标明出处http://blog.csdn.net/mingyue_1128

一、首先要创建一个Service保证Service一直开启,同时不被一键清理掉。

二、屏蔽掉系统的锁屏

三、创建锁屏的Activity,在Activity中屏蔽掉back,menu,home键

四、保证自己的进程不在最近任务中出现

一、创建一个Service名字为LockService

public class LockService extends Service{

	private KeyguardManager km;
	private KeyguardLock kk;
	private BroadcastReceiver broadcastReceiver=new BroadcastReceiver() {

		@Override
		public void onReceive(Context context, Intent arg1) {
			Log.e("-----可以跳到锁屏界面--------", "---------");
			Intent intent=new Intent(context,LockActivity.class);
			intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
			startActivity(intent);
		}
	};
	@Override
	public IBinder onBind(Intent arg0) {

		return null;
	}

	@Override
	public void onStart(Intent intent, int startId) {
		super.onStart(intent, startId);

		//服务里面收到关闭屏幕的动作就发送广播
		IntentFilter iFilter=new IntentFilter(Intent.ACTION_SCREEN_OFF);

		this.registerReceiver(broadcastReceiver, iFilter);

	}

	@Override
	public void onCreate() {
		super.onCreate();
		//屏蔽掉系统的锁屏
		km=(KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
		kk=km.newKeyguardLock("");
		kk.disableKeyguard();

	}

	@Override
	public void onDestroy() {

		super.onDestroy();
	}

}

在Service中与他合作的还有一个广播,当监听到屏幕关的时候,service就会发送广播,使屏幕开的时候为自己锁屏界面

三、锁屏界面中屏蔽掉menu,home,back

public class LockActivity extends Activity{
	private  static final int FLAG_HOMEKEY_DISPATCHED = 0x80000000;
	private Button btn_open;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		this.getWindow().setFlags(FLAG_HOMEKEY_DISPATCHED, FLAG_HOMEKEY_DISPATCHED);//关键代码
		setContentView(R.layout.activity_main);
		//解锁的按钮
		btn_open=(Button) findViewById(R.id.open);

		btn_open.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {
				finish();
			}
		});
	}
	@SuppressWarnings("static-access")
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {

		if(keyCode==event.KEYCODE_BACK){
			return true;
		}
		if(keyCode==event. KEYCODE_HOME){
			return true;
		}
		if(keyCode == KeyEvent.KEYCODE_MENU) {//MENU键
	        //监控/拦截菜单键
	         return true;
	    }
		return super.onKeyDown(keyCode, event);
	}
}

保证自己的锁屏程序不在最近进程中出现,只需要在注册锁屏界面的Activity时,添加一个属性android:excludeFromRecents="true",如下

       <activity
           android:name="com.mm.wallpaper.LockActivity"
           android:launchMode="singleInstance"
           android:excludeFromRecents="true">
		<intent-filter>

                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.DEFAULT" />

            </intent-filter>
       </activity>

四、我们需要看一下主界面怎么处理

public class MainActivity extends Activity {
	MyBroadcast receiveBroadCast;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		//注册广播
		receiveBroadCast = new MyBroadcast();
		IntentFilter filter = new IntentFilter();
		filter.addAction("action"); // 只有持有相同的action的接受者才能接收此广播
		registerReceiver(receiveBroadCast, filter);

		//发送广播
		Intent intent=new Intent();
		intent.setAction("action");
		this.sendBroadcast(intent);

	}
	public class MyBroadcast extends BroadcastReceiver{

		@Override
		public void onReceive(Context context, Intent intent) {

			KeyguardManager km = (KeyguardManager)context.getSystemService(Context.KEYGUARD_SERVICE);

			KeyguardLock kk = km.newKeyguardLock("");
			kk.disableKeyguard();

			//开始服务
			Intent service=new Intent();
			service.setClass(context,LockService.class);//稍后再定义
			context.startService(service);
		}

	}
	@Override
	protected void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
		unregisterReceiver(receiveBroadCast);
	}

}

在这里我们需要注册一个广播保证服务的开启

在配置清单中MainActivity需要多一个属性来保证程序始终在

   <category android:name="android.intent.category.HOME"/>

整个的流程大概如此,希望对想做解锁软件的朋友有所帮助。

android锁屏软件制作

时间: 2024-08-01 06:24:33

android锁屏软件制作的相关文章

Android锁屏软件

需求描述:锁屏软件就是点击应用然后直接锁屏,不会弹出任何界面 设计思路:应用启动以后通过getSystemService获取系统的服务,调用安卓系统的DevicePolicyManager和ComponentName来对系统进行操作,先判断用户是否有相应的权限,如果有,直接锁屏,如果没有就先获取系统权限,再锁屏 废话不说,直接上代码 Main.java(主页面) 1 package com.example.wangshibang.screenlock; 2 3 import android.ap

“重力锁屏”软件简介

一.产品介绍 重力锁屏是基于android系统的一款锁屏软件.它利用重力感应器来判断用户的动作从而自动锁屏亮屏,是锁屏软件的一大创新.相比传统的锁屏软件,“重力锁屏”从可操作性.方便性.功能全面性都有了很大的提升,可以让用户方便快捷的进行锁屏操作. 二.主要特色 (1)调用重力传感器,解放电源键.“重力锁屏”软件调用重力传感器,根据用户翻扣手机或手机朝下的运动状态,实现手机的亮.暗屏.解放手机电源键,延长其使用寿命.并且重力感应功能可开可关,用户可根据自己的喜好和习惯进行设置. (2)界面友好.

用swift开发自己的MacOS锁屏软件(3)

前两篇中实现了MacOS端的锁屏软件,现在需要再实现一个移动端的app用来实现和mac的通信,以后的文章可能就会两个项目来回穿插了. 写完MacOS的软件又回来接着写iOS真的是享受,看着堆积如山的各种资料文档,爽啊,那就现在动手开写吧 首先是创建项目,这个没有什么多说的,创建好项目之后,哈哈,再写一个hello world吧. 依然是拖拽一个label和一个button,label刚开始显示的是Hello iOS,然后点击button之后就会显示Hello World了. 这里和macos不一

jQuery仿Android锁屏图案应用插件

<!doctype html> <html> <head> <meta charset="utf-8"> <title>jQuery仿Android锁屏图案应用插件DEMO演示</title> <link href="css/patternLock.css" rel="stylesheet" type="text/css" /> <scr

iScreenLocker 仿IOS苹果锁屏软件,太逼真了。

*软件介绍: iScreenLocker 是 Android 上处理系统通知的新途径,可以让您在锁屏时看到简洁.美观的新通知,并能直接打开它.如果您想看口袋里的手机有什么新通知,只需从口袋中取出,便会简洁明了地自动显示最新通知. *软件截图: *软件下载: 百度云附件:ios_notification.apk *其他: 软件运行4.2以上系统.

锁屏软件项目可行性研究报告

1引言 1 1.1编写目的 1 1.2背景 1 1.3定义 1 1.4参考资料 1 2可行性研究的前提 2 2.1要求 2 2.2目标 2 2.3条件.假定和限制 3 2.4进行可行性研究的方法 3 2.5评价尺度 3 3对现有系统的分析 3 3.1处理流程和数据流程 4 3.2工作负荷 4 3.3费用开支 4 3.4人员 4 3.5设备 4 3.6局限性 4 4所建议的系统 4 4.1对所建议系统的说明 5 4.2处理流程和数据流程 5 4.3改进之处 5 4.4影响 5 4.4.1对设备的影

android 锁屏程序开发

参考http://blog.csdn.net/wdaming1986/article/details/8837023 锁屏程序的步骤如下: 1.替换系统锁屏 2.屏蔽Home键,back键.menu键 3.锁屏程序不出现在最近任务列表中 4.屏幕唤醒时显示锁屏界面 一.替换系统锁屏 调研市场绝大部分锁屏程序,会引导用户关闭系统锁屏.当用户不关闭系统锁屏的时候我们可以将我们自定义的锁屏程序覆盖在系统锁屏程序上,解锁系统锁屏. 具体做法如下: api level 小于13时: mKeyguardMa

android锁屏

(基于framework 目录下) 一.base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java 开机执行到:systemReady()方法,调用  mKeyguardMediator.onSystemReady();开始锁屏 修改是否锁屏 public void systemReady() { if (mKeyguardMediator != null) { try { //自己添加的,一个变量,如果是0,

Android 锁屏监听

package com.example.lockscreenlistenerdemo; public interface LockScreenListener { String Tag="LockScreenListener"; public void onScreenOn(); public void onScreenOff(); public void onUserPresent(); } 做一个监听接口. 监听广播,监听锁屏 解锁  点亮屏幕的Action package com