有时候,需要在程序中实现屏保相关的功能,如指定一段时间后,显示自定义的屏保画面,网上查了很多资料,大多讲得不详细,或者说不完整。故对屏保相关的功能进行整理。

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. 微信小程序在开发中遇到的问题与解决方法

    微信小程序在开发中遇到的问题与解决方法 参考文章: (1)微信小程序在开发中遇到的问题与解决方法 (2)https://www.cnblogs.com/zjjDaily/p/8032142.html ...

  2. 微信小程序怎么开发自己的小程序?

    现在很多人都想要开发自己的微信小程序,却不知道通过什么方式进行开发,那么关于微信小程序怎么开发自己的小程序,下面给大家讲解一下. 微信小程序怎么开发自己的小程序有哪些方式?可大致分为: 1.自己开发, ...

  3. 公司企业小程序怎么开发自己的小程序

    随着移动互联网的快速发展,小程序已经成为企业展示自身产品和服务的重要渠道.那么公司企业小程序怎么开发自己的小程序呢?本文将为大家详细介绍小程序开发的步骤. 第一步:明确需求 开发小程序前,需要先明确自 ...

  4. 微信小程序云开发成绩查询小程序的制作过程。

    微信小程序云开发成绩查询小程序的制作过程. 如果觉得我讲的好可以点个关注. 明确自己的目的,到底要做一个怎么样的小程序. 我先上效果图: 确定后就可以开始自己布局.主要是用css 1.先看首页,首页主 ...

  5. 基于微信小程序云开发的投票小程序源码,图文投票微信小程序源码

    功能介绍 投票活动十分火,商家,企业,机构偶尔都会来一场投票活动评选,本小程序支持图文投票,简单方便.随时随地完成投票,可以方便设定投票模式(按天按全程,投票数限定). 本代码前后端完整代码包投票列表 ...

  6. android treeview 树形结构,前端开发中,使用TreeView控件创建树形结构

    原标题:前端开发中,使用TreeView控件创建树形结构 Wijmo是一款使用Type编写的新一代Java/HTML5控件集.它秉承触控优先的设计理念,在全球率先支持AngularJS,并提供性能卓越 ...

  7. Windows Vista应用程序的开发中,对应UAC(User Account Control, 用户帐户控制)的开发需求 (二)

    How UAC Works          UAC如何工作 This section describes the architectural and functional components of ...

  8. 五十一、微信小程序云开发中的云函数

    @Author:Runsen 暑假很长,明年就是找工作的时候了.这个时候必须比之前还要拼命. 百无聊赖,看过文档才发现,微信小程序已将云函数,对象存储和云数据库这些都搬了进来,由于前几天刚刚看过这些方 ...

  9. 五十、微信小程序云开发中的云数据库

    @Author:Runsen 今天是2020年7月24日.不学习,不复习,那根一条咸鱼差不多. 今天继续学习复习微信小程序中的云开发. 文章目录 云开发 云数据库 云开发 开发者可以使用云开发开发微信 ...

  10. 大小端交换的程序_数据库在小程序云开发中的应用

    " 高效率数据库为小程序·云开发赋能,共同为客户提供更多优质解决方案. " 目录 小程序·云开发介绍小程序·云开发的数据库服务解决方案及客户成功案例 小程序云开发介绍 " ...

最新文章

  1. apache优化管理
  2. Tp5缓存Cache
  3. OpenCV的cv::cvtColor函数之“CV_RGB2GRAY”: 未声明的标识符错误解决方法
  4. 底层原理_Spring框架底层原理IoC
  5. 2017-2018-2 20179202《网络攻防技术》第一周作业
  6. php中args,PHP中的重载,即__call($name , $args)的使用
  7. Linux - chmod
  8. 计算机平面设计专业有哪些课程,计算机平面设计专业课程有哪些?
  9. 利用C++实现自定义插件
  10. 42岁老码农找工作记录
  11. 跨浏览器的元素的竖直排列
  12. 利用keras训练自己的图片数据集
  13. Linux虚拟文件系统之文件系统安装(sys_mount())
  14. 计算机在线考试摘要,基于WEB的网络在线考试系统-毕业论文中文摘要题目(可编辑).doc...
  15. echarts地图功能实现及坐标定位
  16. 图谱实战 | 丁香园医疗领域图谱的构建与应用
  17. Matlab的plot函数、fplot函数
  18. 抢鞋软件bot服务器系统,抢鞋机器人bot安卓版
  19. arduino控制IM1281B电量计能模块
  20. Servlet[SpringMVC]的Servlet.init()引发异常

热门文章

  1. 计算机网络实验(二)2交换机的基本配置与管理
  2. 人脸数据库使用授权求助帖
  3. 关于Excel常用函数做数据分析
  4. apple苹果IOS内购申请教程协议、税务和银行业务配置
  5. 【FPGA】DS18B20温度显示
  6. 四LED单端输出充电仓配合TWS耳机芯片QCC3020使用
  7. MATLAB | 老版本也能用,默认设置让简单的代码画出炫酷的图像
  8. 《史上最简单的 SpringCloud 教程》系列 (转载 http://blog.csdn.net/forezp/article/details/70148833 本文出自方志朋的博客)
  9. openCV 下载地址
  10. CMD 乱码怎样解决