Android4.0+锁屏程序开发——设置锁屏页面篇
【如何开发一个锁屏应用】
想要开发一个锁屏应用,似乎很难,其实并没有想象中那么难。
从本质上来说,锁屏界面也只是一个Activity而已,只是这个界面比较特殊,在我们点亮屏幕的时候,这个界面就会出现。
而且在此界面中,我们可以用一些行为来退出,比如点击按钮等。
还有一个特征是在这个界面的时候,我们通常是不能使用底部的三个按钮的
关于如果屏蔽底部的三个按钮,我已经在另一篇博客Android4.0+锁屏程序开发——按键屏蔽篇进行了总结,有需要的朋友可以参看。
这篇博客我们主要讨论如何让一个Activity在屏幕点亮的时候出现,并且不触发系统的锁屏。
【设置自己的锁屏页面】
首先,点亮屏幕的时候,系统会发出一个广播,ACTION_SCREEN_ON,我们可以通过一个BroadcastReceiver来监听这个广播,并启动我们自己的Activity
例如下面的代码:
private BroadcastReceiver screenReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals("android.intent.action.SCREEN_ON") || action.equals("android.intent.action.SCREEN_OFF")) {
startActivity(toMainIntent);
}
}
};
但是,光启动我们的Activity还不够,因为仅仅是启动的话,系统的锁屏还是会出现在界面上,那么效果就变成了,我们解锁了系统的锁屏看到了自定义的界面。
这显然不是我们想看到的,我们想的是当屏幕一点亮就看到我们的界面。
我们可以通过对自定义界面的设置中关闭系统的锁屏来实现这个需求。
代码如下:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final Window win = getWindow();
win.addFlags(
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);//解除系统锁屏
setContentView(R.layout.main_layout);
setView();//设置关闭按钮
}
通过上面的设置,我们就可以在点亮屏幕的时候看到自己的界面了。
一个完整的锁屏例子我已经上传到了GitHub上面,地址是:https://github.com/u3shadow/ScreenLocker
有需要的朋友可以进行参考。
通过这两篇博客,我们就可以基本实现一个锁屏应用了,在此基础上,我们可以对自定义界面做更进一步的优化,美化,做出自己理想的锁屏。
此系列就到这里,希望能帮助到大家,谢谢
Android4.0+锁屏程序开发——设置锁屏页面篇的更多相关文章
- Android4.0+锁屏程序开发——按键屏蔽篇
开发锁屏程序的时候我们要面临的重要问题无疑是如何屏蔽三个按键,Back,Home,Menu 看似简单的功能,实现起来却并不是那么容易. [屏蔽Back按键] 相对来说,屏蔽Back键是比较简单的,只 ...
- Android4.0的Alertdialog对话框,设置点击其他位置不消失
Android4.0以上AlertDialog,包括其他自定义的dialog,在触摸对话框边缘外部,对话框消失. 可以设置这么一条属性,当然必须先AlertDialog.Builder.create( ...
- 微信小程序开发06-一个业务页面的完成
前言 接上文:微信小程序开发05-日历组件的实现 github地址:https://github.com/yexiaochai/wxdemo 这里来说一说我们的理念,我们也学习小程序开发有一周多了,从 ...
- 微信小程序开发——以简单易懂的浏览器页面栈理解小程序的页面路由
前言: 对于小程序的页面路由,如果没有一定开发经验的话,理解起来还是会有些困难的.哪怕是有一定小程序开发经验的开发者,能够完全理解掌握的恐怕也不多. 这里就以另外一种方式来详细的介绍小程序的页面栈及路 ...
- 微信小程序开发 -- 设置屏幕亮度
wx.setScreenBrightness(OBJECT) 设置屏幕亮度. OBJECT参数说明: 参数 类型 必填 说明 value Number 是 屏幕亮度值,范围 0~1,0 最暗,1 最亮 ...
- 微信小程序开发——设置默认图片、错误加载图片
小程序不支持h5中的onerrorimg,只开放了binderror属性,当错误发生时,会发布到 AppService,事件对象event.detail = {errMsg: 'something w ...
- Android4.0系统以上程序不出现菜单键的问题解决
去掉targetSdkVersion 或改为targetSdkVersion =13或更小.. 不改targetSdkVersion的办法:在onCreate() 里setContentView()之 ...
- v2.0版本小程序开发心得(代码之外)
总结一些代码之外的事情: 做优先该做的事情 分清主次,一天只有24小时,人的精力也是有限的,而且经常性的是,在某个时间爆发性的产生了大量的问题.这些问题集中的产生,需要一个一个的解决,但是人的精力是有 ...
- chrome扩展程序开发之在目标页面运行自己的JS
大家都知道JS是运行在客户端的,所以,如果我们自己写一个浏览器的话,是一定可以往下载下来的网页源代码中加入js的.可惜我们没有这个能力.不过幸运的是,chrome的扩展程序可以帮我们做到这件事. 本文 ...
随机推荐
- jquery自定义插件实现分页效果
这节介绍如何自定义jquery插件,实现分页效果,话不多说,先看看实现的效果: 分页插件 实现的代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTM ...
- Delphi for Android (aka Delphi XE5 aka RAD Studio XE5) has appeared
Delphi for Android (aka Delphi XE5 aka RAD Studio XE5) has appeared Blimey, that took me by surpri ...
- 微信小程序如何在使用wx.request使用cookie
我主要是做asp.net mvc后端开发的,经常使用Jquery的ajax与后台的Web API进行数据交互. 最近公司要做一个小程序,要实现小程序与Web前端的通信,当然小程序是可以实现socket ...
- vim编辑器安装命令使用命令和设置的使用总结
vim编辑器的安装 vi(vim)是上Linux非常常用的编辑器,很多Linux发行版都默认安装了vi(vim).vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率.本文讲解主要是在Cento ...
- Robot Framework接口测试(1)
RF是做接口测试的一个非常方便的工具,我们只需要写好发送报文的脚本,就可以灵活的对接口进行测试. 做接口测试我们需要做如下工作: 1.拼接发送的报文 2.发送请求的方法 3.对结果进行判断 我们先按步 ...
- matlab中求逆矩阵的高斯消元法实现的代码
function qiuni =INV_GET(a)N=length(a);M=eye(N);%得到上三角矩?for i=1:N max=a(i,i); A=i; for j=i+1:N if(abs ...
- 转载 关于include尖括号和双引号的区别。
对于使用尖括号( < >),预处理程序cpp在系统预设包含文件目录(如/usr/include)中搜寻相应的文件,而对于使用双引号(“ ”),cpp在当前目录中搜寻头文件,这个选项的作用是 ...
- test20181219 连续段的期望
题意 连续段的期望 [问题描述] 小N最近学习了位运算,她发现2个数xor之后数的大小可能变大也可能变小,and之后都不会变大,or之后不会变小.于是她想算出以下的期望值:现在有 N个数排成一排,如果 ...
- oracle truncate闪回数据库恢复
1.创建试验表 conn scott/tiger create table truncate_test as select * from user_objects; select count(*) f ...
- laravel中好用的支付安装包
是包括支付宝和微信的支付 准用包,在测试中 https://github.com/yansongda/laravel-pay 这个包,看上去很好但是composer require时,要求php太高, ...