android 屏保程序,Android开发中屏保程序
有时候,需要在程序中实现屏保相关的功能,如指定一段时间后,显示自定义的屏保画面,网上查了很多资料,大多讲得不详细,或者说不完整。故对屏保相关的功能进行整理。
1、注册一个BroadcastReceiver,用于接收ACTION_SCREEN_OFF事件。当接收到这个事件时,打开自定义的屏保画面。以下代码为了测试方便,放在MainActivity.java中,也可以根据需要,把代码放入service中。
registerReceiver(mMasterResetReciever,newIntentFilter(Intent.ACTION_SCREEN_OFF));
BroadcastReceiver mMasterResetReciever=newBroadcastReceiver() {
publicvoidonReceive(Context context, Intent intent){
try{
Intent i =newIntent();
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.setClass(context, ScreenSaverActivity.class);
context.startActivity(i);
}catch(Exception e){
Log.i("Output:", e.toString());
}
}
};
2、完成这一步时,虽然屏幕关闭时,屏保画面被显示,但由于接收的是ACTION_SCREEN_OFF事件,所以屏幕已经变黑了,这个时候就需要强制点亮屏幕。
首先,在AndroidManifest.xml中加上permission 权限:
以下代码在ScreenSaverActivity.onCreate中
PowerManagerpm= (PowerManager)getSystemService(POWER_SERVICE);
mWakeLock=pm.newWakeLock(
PowerManager.ACQUIRE_CAUSES_WAKEUP |
PowerManager.SCREEN_DIM_WAKE_LOCK |
PowerManager.ON_AFTER_RELEASE,"SimpleTimer");
然后在屏保画面显示时,点亮屏幕。在ScreenSaverActivity.onResume中加入
mWakeLock.acquire();
为了能够在退出屏保时,能够让屏幕可以关闭,我们必须释放WakeLock.故在ScreenSaverActivity.onPause中加入
mWakeLock.acquire();
注意,必须放在onResume中,如放在别的地方。会导致程序无法再次进入屏保,具体原因不详。由于手头只有一个手机,不能进行广泛的测试。
3. 完成第二步后,一般情况下大功告成。按键就可以返回程序。但有时候需要点击屏幕就返回系统。这个时候会发现,无论怎么样点击屏幕,系统都不会有响应,因为此时屏幕已经被锁定。因此,要实现这个功能,在打开屏保时,需要关键屏幕的锁定功能。
首先,在AndroidManifest.xml中加上permission 权限:
再次,把以下这段代码加入合适的地方。只要启动屏保时能够被调用到
KeyguardManager mKeyguardManager= (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);
KeyguardLock mKeyguardLock= mKeyguardManager.newKeyguardLock(TAG);
mKeyguardLock.disableKeyguard();
当然也可以通过以下代码开启屏幕锁定功能。
mKeyguardLock.reenableKeyguard();
【编辑推荐】
【责任编辑:闫佳明 TEL:(010)68476606】
点赞 0
android 屏保程序,Android开发中屏保程序相关推荐
- 微信小程序在开发中遇到的问题与解决方法
微信小程序在开发中遇到的问题与解决方法 参考文章: (1)微信小程序在开发中遇到的问题与解决方法 (2)https://www.cnblogs.com/zjjDaily/p/8032142.html ...
- 微信小程序怎么开发自己的小程序?
现在很多人都想要开发自己的微信小程序,却不知道通过什么方式进行开发,那么关于微信小程序怎么开发自己的小程序,下面给大家讲解一下. 微信小程序怎么开发自己的小程序有哪些方式?可大致分为: 1.自己开发, ...
- 公司企业小程序怎么开发自己的小程序
随着移动互联网的快速发展,小程序已经成为企业展示自身产品和服务的重要渠道.那么公司企业小程序怎么开发自己的小程序呢?本文将为大家详细介绍小程序开发的步骤. 第一步:明确需求 开发小程序前,需要先明确自 ...
- 微信小程序云开发成绩查询小程序的制作过程。
微信小程序云开发成绩查询小程序的制作过程. 如果觉得我讲的好可以点个关注. 明确自己的目的,到底要做一个怎么样的小程序. 我先上效果图: 确定后就可以开始自己布局.主要是用css 1.先看首页,首页主 ...
- 基于微信小程序云开发的投票小程序源码,图文投票微信小程序源码
功能介绍 投票活动十分火,商家,企业,机构偶尔都会来一场投票活动评选,本小程序支持图文投票,简单方便.随时随地完成投票,可以方便设定投票模式(按天按全程,投票数限定). 本代码前后端完整代码包投票列表 ...
- android treeview 树形结构,前端开发中,使用TreeView控件创建树形结构
原标题:前端开发中,使用TreeView控件创建树形结构 Wijmo是一款使用Type编写的新一代Java/HTML5控件集.它秉承触控优先的设计理念,在全球率先支持AngularJS,并提供性能卓越 ...
- Windows Vista应用程序的开发中,对应UAC(User Account Control, 用户帐户控制)的开发需求 (二)
How UAC Works UAC如何工作 This section describes the architectural and functional components of ...
- 五十一、微信小程序云开发中的云函数
@Author:Runsen 暑假很长,明年就是找工作的时候了.这个时候必须比之前还要拼命. 百无聊赖,看过文档才发现,微信小程序已将云函数,对象存储和云数据库这些都搬了进来,由于前几天刚刚看过这些方 ...
- 五十、微信小程序云开发中的云数据库
@Author:Runsen 今天是2020年7月24日.不学习,不复习,那根一条咸鱼差不多. 今天继续学习复习微信小程序中的云开发. 文章目录 云开发 云数据库 云开发 开发者可以使用云开发开发微信 ...
- 大小端交换的程序_数据库在小程序云开发中的应用
" 高效率数据库为小程序·云开发赋能,共同为客户提供更多优质解决方案. " 目录 小程序·云开发介绍小程序·云开发的数据库服务解决方案及客户成功案例 小程序云开发介绍 " ...
最新文章
- apache优化管理
- Tp5缓存Cache
- OpenCV的cv::cvtColor函数之“CV_RGB2GRAY”: 未声明的标识符错误解决方法
- 底层原理_Spring框架底层原理IoC
- 2017-2018-2 20179202《网络攻防技术》第一周作业
- php中args,PHP中的重载,即__call($name , $args)的使用
- Linux - chmod
- 计算机平面设计专业有哪些课程,计算机平面设计专业课程有哪些?
- 利用C++实现自定义插件
- 42岁老码农找工作记录
- 跨浏览器的元素的竖直排列
- 利用keras训练自己的图片数据集
- Linux虚拟文件系统之文件系统安装(sys_mount())
- 计算机在线考试摘要,基于WEB的网络在线考试系统-毕业论文中文摘要题目(可编辑).doc...
- echarts地图功能实现及坐标定位
- 图谱实战 | 丁香园医疗领域图谱的构建与应用
- Matlab的plot函数、fplot函数
- 抢鞋软件bot服务器系统,抢鞋机器人bot安卓版
- arduino控制IM1281B电量计能模块
- Servlet[SpringMVC]的Servlet.init()引发异常
热门文章
- 计算机网络实验(二)2交换机的基本配置与管理
- 人脸数据库使用授权求助帖
- 关于Excel常用函数做数据分析
- apple苹果IOS内购申请教程协议、税务和银行业务配置
- 【FPGA】DS18B20温度显示
- 四LED单端输出充电仓配合TWS耳机芯片QCC3020使用
- MATLAB | 老版本也能用,默认设置让简单的代码画出炫酷的图像
- 《史上最简单的 SpringCloud 教程》系列 (转载 http://blog.csdn.net/forezp/article/details/70148833 本文出自方志朋的博客)
- openCV 下载地址
- CMD 乱码怎样解决