推广 热搜:   公司  快速  中国  企业    行业  设备  上海  未来 

android 检测是否触摸屏幕 安卓手机屏幕检测指令

   日期:2025-01-01     移动:http://keair.bhha.com.cn/mobile/quote/5927.html

目录结构:


contents structure [+]

  1. 如何监听屏幕锁屏
  2. 如何实现手机屏幕在锁屏后继续运行

 

最近笔者在做一个功能,就是实现Android程序在锁屏后可以继续运行,笔者在网上查了一些资料,现在整理出来,希望能够对你有所帮助。

监听屏幕锁屏可以通过如下方式来实现,直接通过代码来判定,或通过监听器来实现

如何实现Android程序在手机锁屏后继续运行

可以通过PowerManager的isScreenOn方法,代码如下:

这里需要解释一下:
屏幕“亮”,表示有两种状态:a、未锁屏 b、目前正处于解锁状态 。这两种状态屏幕都是亮的;
屏幕“暗”,表示目前屏幕是黑的 。

通过KeyguardManager的inKeyguardRestrictedInputMode方法,也可以实现判断屏幕的锁屏状态

对flag进行一下说明,经过试验,总结为:
如果flag为true,表示有两种状态:a、屏幕是黑的 b、目前正处于锁屏状态 。
如果flag为false,表示目前未锁屏

当然也可以通过反射的方式来调用上面的两种方法:

当安卓系统锁屏或者屏幕亮起,或是屏幕解锁的时候,系统内部都会发送相应的广播,我们只需要对广播进行监听就可以了

注册广播的伪代码如下:

在上面我们知道了如何监听屏幕的状态,接下要实现如何在屏幕关闭后程序不停止运行。关于这个功能,笔者在网上搜索了一些资料,Android的WakeLock机制就是其中一种,使用Android的service也可以。但是经过笔者的测试发现效果都不太理想,对于Android版本的兼容性不强,笔者的Android4.4可以支持,但是Android6.0经过测试发现却不支持。

下面笔者介绍一种万能方法,在这里感谢知乎给我提出的意见(听说是QQ锁屏的黑科技呢)。

就是在屏幕锁屏的时候,跳转到另一个界面,该界面只有一个像素点。

代码如下:

MainActivity.java

MainActivity.java

SinglePixelActivity.java

SinglePixelActivity.java

AndroidManifest.xml中需要添加如下:

运行上面的程序,可以看到计时器在正常打印东西,说明程序并没有完全停止,还可以看到打印如下的日志:

从日志中可以看出,当锁屏后,这个SinglePixelActivity立即进入了OnStop状态,在Onstop的状态的页面是很有可能被系统回收的。因此可以再配合上WakeLock机制,若WakeLock不合适的话,那么可以尝试播放无声音乐。保持系统不回收该App的资源。

 需要注意,当锁屏后再次打开的跳转逻辑处理也是一个问题,可以参考  Android实现监听返回键,主键(HOME),菜单键

 


本文地址:http://keair.bhha.com.cn/quote/5927.html    康宝晨 http://keair.bhha.com.cn/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


相关最新动态
推荐最新动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2023022329号