全局监听SCREEN_ON和SCREEN_OFF的替代方法--监听屏幕解锁事件

Android开机触摸错乱:屏幕旋转与输入系统时序同步问题深度解析 在Android系统开发中,系统服务初始化时序与跨子系统状态同步是影响设备稳定性的关键基础问题。其核心原理在于,Android的显示子系统(由WindowManagerService和SurfaceFlinger管理)与输入子系统(由InputManagerService和InputFlinger处理)在启动过程中需要协同工作。当显示方向发生旋转时,输入系统必须同步应用对应的坐标变换矩阵,以确保触摸坐标能正确映射到旋转后的屏幕界面。这一机制的技术价值在于保障了用户交互的基础正确性,是设备可用性的基石。其典型 阅读详情

在做一个程序的时候,需要时刻保持某一服务是启动的,因此想到了通过监听屏幕SCREEN_ON和SCREEN_OFF这两个action。奇怪的是,这两个action只能通过代码的形式注册,才能被监听到,使用AndroidManifest.xml 完全监听不到。查了一下,发现这是PowerManager那边在发这个广播的时候,做了限制,限制只能有register到代码中的receiver才能接收。

 

  1. private void registerScreenActionReceiver(){  
  2.     final IntentFilter filter = new IntentFilter();  
  3.     filter.addAction(Intent.ACTION_SCREEN_OFF);  
  4.     filter.addAction(Intent.ACTION_SCREEN_ON);  
  5.     registerReceiver(receiver, filter);  
  6. }  
  7.   
  8. private final BroadcastReceiver receiver = new BroadcastReceiver(){  
  9.   
  10.     @Override  
  11.     public void onReceive(final Context context, final Intent intent) {  
  12.         // Do your action here  
  13.   
  14.     }  
  15.   
  16. };  


 

那怎么才能保证我的服务一直是启动状态呢,其实还有另一个Action可以反映出用户正在使用手机的行为,每个用户在使用手机的时候,首先按电源键将屏幕点亮,紧接着就是解锁。解锁动作通过android.intent.action.USER_PRESENT发送出来,我们就能识别出该用户进入了home界面,也就能启动我们相应的服务了,不管你是要谈对话框welcome用户,还是后台启动程序升级服务,都可以!以神的名义发誓,该Action在AndroidManifest.xml中可以监听得到。

 

  1. <application android:icon="@drawable/icon" android:label="@string/app_name">  
  2.     <activity android:name=".ScreenActionTestActivity"  
  3.         android:label="@string/app_name">  
  4.         <intent-filter>  
  5.             <action android:name="android.intent.action.MAIN" />  
  6.             <category android:name="android.intent.category.LAUNCHER" />  
  7.         </intent-filter>  
  8.     </activity>  
  9.     <receiver android:name=".ActionReceiver">  
  10.         <intent-filter android:priority="90000">  
  11.             <action android:name="android.intent.action.USER_PRESENT" />  
  12.         </intent-filter>  
  13.     </receiver>  
  14. </application>  

Android屏幕适配利器:adb shell wm指令详解与实战应用 在Android开发中,屏幕适配是确保应用在不同设备上拥有良好用户体验的关键环节,其核心在于理解屏幕尺寸、像素密度等基础概念。系统通过dp(密度无关像素)等机制,将UI布局与物理屏幕参数解耦,以实现跨设备的界面一致性。然而,在实际开发与测试中,开发者常需精确获取或模拟特定设备的显示参数,以验证UI兼容性。adb shell wm指令正是为此提供底层支持的强大工具,它允许开发者直接与系统窗口管理器交互,动态查询和修改屏幕分辨率、密度等核心显示配置。这一能力对于高效进行多设备UI兼容性测试、快速验证响应式布局以 阅读详情

相关推荐

Android智能锁屏开发:基于Kotlin的悬浮窗与手势解锁

Android悬浮窗机制是系统级增强应用的核心技术,通过WindowManager可将自定义视图添加到系统窗口层,实现跨Activity的UI展示。结合Kotlin的简洁语法与自定义View的灵活绘制,开发者能够构建贴近系统底层的交互体验。手势解锁作为常见交互模式,监听触摸事件并依据滑动阈值判断,让用户无需进入桌面即可完成操作。这类智能锁屏应用进一步融合通知监听服务,将天气、消息等动态信息前置到锁屏界面,大幅提升信息获取效率。基于Kotlin的Android智能UI锁屏项目,涉及窗口参数配置、生命周期管理、

weixin_26897585的博客 279

android intent.action_screen_on,android – ACTION_SCREEN_ON和ACTION_SCREEN_OFF不工作?

我正在尝试在屏幕关闭(锁定)时关闭WiFi,并在屏幕开启(解锁)时再次打开它.我做了一个BroadcastReceiver;放入清单这段代码:这是MyIntentReceiver类:package org.androidpeople.boot;import android.content.BroadcastReceiver;import android.content.Context;import...

weixin_39619635的博客 1025

安卓手机 永 不 熄 屏.apk

安卓专用,永不熄屏 no screen off 。找了很久,很实用。

发送SCREEN_OFF和SCREEN_ON广播

android.intent.action.SCREEN_OFF和android.intent.action.SCREEN_ON广播的发送者。

lu505的博客 1382

搜索引擎——ElasticSearch汇总

汇总——ElasticSearch篇 全文检索 问题1:什么是全文检索? 基本概念:对**非结构化数据/结构化数据**先建立**索引**,再对索引进行搜索**文档**的过程叫做全文检索。 什么是非结构化与结构化数据? - 非结构化数据:没有固定的格式的数据(html,word,excel)---没有固定长度,字段约束,描述,散列数据 - 结构化数据:有固定的格式的数据(如:数据库数据)---有固定长度(varchar(50)),字段类型,描述修饰数据 搜索算法:顺序扫描法、倒排索引法 - 顺序

alonewolf_99的博客 1839

Grok-1.5+Ollama企业级本地化部署与合规实践指南

本文详细介绍了Grok-1.5+Ollama企业级本地化部署与合规实践指南,重点分析了本地化部署的成本优势和数据主权保障。通过RTX 4090显卡的硬件选型、Ubuntu 22.04系统优化及部署流程中的关键陷阱规避,为企业提供了高效、安全的AI模型部署方案。特别适合金融、医疗等敏感行业。

weixin_29094539的博客 182

android intent.action_screen_on,Android - 如何接收广播意图ACTION_SCREEN_ON / OFF?

杨魅力"android.intent.action.HEADSET_PLUG""android.intent.action.ACTION_SCREEN_ON""android.intent.action.ACTION_SCREEN_OFF"其中三个,他们无法使用Manifest注册。Android核心向他们添加了“Intent.FLAG_RECEIVER_REGISTERED_ONLY”(也许.....

weixin_42432918的博客 1428

探索niri:让你的Linux桌面布局无拘无束

niri是一款基于Wayland的滚动平铺合成器,采用创新的窗口管理方式。它将窗口排列为向右无限延伸的条目,支持独立显示器布局和动态垂直工作区,确保多任务操作流畅性。核心功能包括概要视图、截图界面、屏幕投射、手势操作、窗口分组等,并支持自定义布局和动画效果。niri具备良好的稳定性,兼容xwayland-satellite工具,灵感来自PaperWM但突破了GNOME限制。该项目为追求高效桌面管理的用户提供了全新解决方案,欢迎加入社区交流体验。

weixin_44626085的博客 1816

关闭 全局监听SCREEN_ON和SCREEN_OFF的替代方法--监听屏幕解锁事件

s

664

避坑指南:Dify+Docker+Ollama离线部署实战与疑难解析

本文详细解析了在国产化系统(如银河麒麟V10)内网环境中,如何从零开始离线部署Dify、Docker与Ollama的全栈AI应用开发平台。文章重点拆解了Docker安装中的“没有Release文件”和“GPG密钥错误”等典型报错解决方案,并提供了Ollama离线模型导入与Dify连接配置的完整实战指南,旨在帮助开发者高效完成本地部署,避开常见陷阱。

dd012的博客 464

YOLO格式数据集【数据增强】终极脚本 | 70+种顶级数据增强方法 | 可带标签增强

YOLO格式数据集【数据增强】终极脚本 | 70+种顶级数据增强方法 | 可带标签增强

Coding... 5501

和登陆有关的整理

全局监听SCREEN_ON和SCREEN_OFF的替代方法--监听屏幕解锁事件 http://blog.youkuaiyun.com/chenghai2011/article/details/7219336

Jason_996的博客 442

Python全栈入门到实战【基础篇 05】核心基础:Python的2种运行模式(交互式+命令行式)

Python代码运行模式详解:交互式与命令行式对比 摘要: Python提供两种核心运行模式:交互式(REPL)和命令行式(脚本式)。交互式模式适合快速测试语法,即时反馈结果,通过终端输入python启动,特点是无需保存、临时执行,适合验证小段代码逻辑。命令行式模式需将代码保存为.py文件后运行,适合开发完整程序,可重复执行和修改。两种模式各有优势:交互式便于学习调试,命令行式适合实际开发。掌握两种模式的使用场景和切换方法,是Python入门的关键技能,能显著提升学习效率。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 4559

android 监听自动暗屏,android亮屏、暗屏、解锁、关闭系统对话的监听事件

package com.isoft.screen;import java.lang.reflect.Method;import android.app.Activity;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import androi...

weixin_39753260的博客 250

飞牛NAS新增虚拟机功能,如果使用虚拟机网卡直通安装ikuai软路由(如何解决OVS网桥绑定失败以及打开ovs后无法访问飞牛nas等问题)

飞牛NAS新增虚拟机功能,如果使用虚拟机网卡直通安装ikuai软路由

XiaoqiangClub的博客 1万+

构建AI招聘助手:提高人才筛选与匹配效率

人工成本高:传统招聘过程涉及大量的简历筛选和面试安排,需要耗费大量的人力和时间。匹配效率低:简历筛选过程中,人为因素可能导致信息遗漏或误判,影响匹配效果。招聘周期长:从职位发布到最终录用,传统招聘流程往往耗时较长,影响企业业务发展。机器学习(Machine Learning)是一门让计算机通过数据和经验来学习并改进性能的学科。自然语言处理(Natural Language Processing,NLP)是计算机科学领域与人工智能领域中的一个重要方向,旨在让计算机能够理解和解释人类语言。

AI天才研究院 1305

Android实现自定义锁屏控制

当在Android手机上需要实现自定义的锁屏,  往往在进入自定义的锁屏界面界面之前需要先解开屏幕锁, 以顺利的进入自定义锁屏界面 ,并能方便用户即时的做其他操作,下面用代码来实现这一功能:  1、点亮屏幕与解系统锁 //light the screen PowerManager pm = (PowerManager)getSystemService(POWER_SERVICE);

深耕互联网架构 15 年、7 年 CTO 高管实战,以阿里 P9 一线视角,拆解电商交易、企业中台、大数据、AI 大模型全领域架构选型逻辑。汇总架构高频踩坑点与落地准则,规避过度设计、技术堆砌、业务脱节问题 4886

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Android应用密码的实现

最近做了一个demo——功能是给自己的应用加锁,访问的时候需要输入密码,并且每次锁屏再开之后都需要重新输入密码。 主要思路: 设置一个全局变量表示当前应用的状态(布尔值:已锁定|已解锁),在每个Activity显示之前进行状态判断,如果当前为锁定状态,则终止显示,跳转到密码界面。在密码界面输入正确的密码之后,将应用状态改为已解锁,并返回继续显示之前的Activity;否则继续要求输入密码。

lyglostangel的专栏 982

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

广播接收者与广播发送者复习

广播接收者的本质就是一个全局的监听器,用于监听系统全局的广播消息,比如:拨打电话、收发短信、屏幕解锁等事件产生了,系统会发送广播,只要应用程序接受到这条广播,就知道系统发生了相应的事件,从而执行相应的代码。创建一个广播接收者: 声明一个类继承自BroadcastReceiver,重写BroadcastReceiver的onReceiver方法即可。 指定BroadcastReceiver可以匹配的I

春水碧于天的博客 756

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Android开发--IM聊天项目(五)--进程保活踩坑

上周四面试的时候,面试官提到了进程保活的问题,所以现在就来踩一下坑,准备多尝试一下,学点新东西。正好最近也在写这个聊天项目的另一个衍生的项目,推送平台,也是对保活有很大的要求的,打好铺垫。测试机型:小米5(android7.0)、魅族metal(android5.0.1)先分析待解决问题:锁屏之后,被自动杀掉进程,导致无法收到后续消息。 目标:锁屏之后不被杀掉。 思路1:算是一个歪点子,新添加一个A

CallMeSP的博客 1350

版本4.0锁屏下的 NFC discover TAG

今天发现package中 NFC都没怎么好好看过,导致我写一个新的东西很难,所以决定今天把它剖析完。哈,发现找到我想要的东西就不想写全拉,嘿,果然还是很懒!! 因为新东西是跟NFC TAG有关,故从这里入手,需要看得为package下面的nfc文件夹里的东东 1. NfcService 这个是继承自Application. 应该是方便设一些全局变量。 里面有几个内部类NfcAdapterS

yotagee的专栏 3012

仓颉 OpenHarmony 公共事件模块 ohos.common_event_manager API 详解

本篇技术文章以仓颉语言 OpenHarmony 应用开发参考文档 `ohos/zh-cn/application-dev/reference/BasicServicesKit/cj-apis-common_event_manager.md` 为主体,完整讲解 `common_event_manager` 模块提供的发布、订阅与退订公共事件的四个核心静态接口,覆盖每个接口的仓颉方法签名、参数取值、默

gitblog_00466的博客 367

PhoneProfilesPlus的20+种事件触发器完整指南:按时间、位置、电池、NFC自动切换Profile

**PhoneProfilesPlus**(简称 PPP)是一款面向 Android 的开源 Profile 管理器,核心价值是**事件触发(Event Triggered)**:当手机时间、位置、电池电量、NFC 触碰等状态变化时,自动切换铃声模式、WiFi、蓝牙、亮度等设置,让你再也不用手动调整。本指南带你完整认识它的 20 余种事件触发器,从入门配置到进阶技巧一次讲清。 ## 什么是 Pr

gitblog_00074的博客 384
上一篇: Android中调用系统所装的软件打开文件
下一篇: ubuntu ???????????? no permissions 问题解决
chenghai2011
博客等级 码龄15年 22粉丝 41原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值