【Android】屏幕锁

屏幕锁,就是锁住屏幕不让用户误触摸,从开发者的角度看就是不响应用户的点击事件。

屏幕锁界面

可以自己创建一个布局文件,或者直接创建一个View(例如ImageView)。

参数LayoutParams

		mLayoutParams = new LayoutParams();mLayoutParams.width = LayoutParams.MATCH_PARENT;mLayoutParams.height = LayoutParams.MATCH_PARENT;mLayoutParams.type = LayoutParams.TYPE_SYSTEM_ERROR;mLayoutParams.flags = 1280;

添加到视图

然后使用WindowManager的addView方法添加到window即可。

mWindowManager.addView(mScreenLockView, mLayoutParams);

缺陷

但是这样之后其实还有个问题,就是手势导航为手势导航的时候(就是不是三按钮导航的时候),它还是能响应。所以还是需要拦截手势导航的点击事件。

解决方法

在packages/apps/Launcher3/quickstep/recents_ui_overrides/src/com/android/quickstep/TouchInteractionService.java

的onInputEvent方法拦截即可

    private void onInputEvent(InputEvent ev) {if (开启了屏幕锁) {return;}......}

至于为什么是在这拦截,可以看这篇文章:

Android 10 手势导航源码分析_android framework 手势导航源码-CSDN博客

消费者

这里只是对上面那篇文章的一个记录。

其中OverviewInputConsumer是在桌面或者最近任务界面处理事件的消费者;OtherActivityInputConsumer是非桌面情况下出现的事件消费者;OverviewWithoutFocusInputConsumer是在桌面resumed但是没有焦点的时候的事件消费者,例如桌面上有dialog之类的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/658955.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【笔记】React-Native跟Android交互--简单示例

/** * 使用命令 npx react-nativelatest init DemoRN创建项目 * * "react": "18.2.0", * "react-native": "0.73.2" * * 官网有详细教程:https://reactnative.dev/docs/native-modules-android */ 一、RN invoke androi…

【读点论文】SPTS Single-Point Text Spotting

SPTS Single-Point Text Spotting ABSTRACT 现有的场景文本识别(即,端到端文本检测和识别)方法依赖于昂贵的边界框注释(例如,文本行,词级或字符级边界框)。我们首次证明,训练场景文本识别模型可以通过对每个实例的单点进行极低成…

线性代数----------学习记录

线性代数发展历程 (1)线性方程组:例如二元一次方程组; (2)行列式:determinant,克莱默,莱布尼兹; (3)矩阵:方程个数与未知数的个数可…

为什么国内企业都选择VeryReport电子表格软件

在国内,电子表格软件市场竞争激烈,众多企业如雨后春笋般涌现。这些企业各具特色,优势明显。但为何众多国内企业独爱VeryReport电子表格软件?这款软件究竟有何魅力,能为企业带来何种益处? 经过深入探究&…

5.变量的解构赋值 - JS

什么是解构赋值 通过类似(或相同)的构型,将已知数据的元素/属性解构并提取出来,再赋值到相应变量,可以是新建的变量,也可以是已存在的变量/属性等;最常见的是数组和对象的解构赋值,…

黑马程序员前端web入门:新浪新闻

黑马程序员前端web入门:新浪新闻 几点学习到的: 设置li无圆点: list-style: none;设置a无下划线:text-decoration: none;a属于行内元素,高度hegiht不起作用,可以设置 display: block; 把它变成块元素。此时&#xff0c…

万户 ezOFFICE wpsservlet SQL注入漏洞复现

0x01 产品简介 万户OA ezoffice是万户网络协同办公产品多年来一直将主要精力致力于中高端市场的一款OA协同办公软件产品,统一的基础管理平台,实现用户数据统一管理、权限统一分配、身份统一认证。统一规划门户网站群和协同办公平台,将外网信息维护、客户服务、互动交流和日…

数据安全与数据交易中的安全

数据安全与数据交易中的安全 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 数据交易是一个新的名词,之前只听过数据作为生产要素这个提法的时候,本来就觉得很新奇,24年初,1月21日&…

操作系统-调度算法-1(先来先服务算法 短作业优先 高响应比优先 )

文章目录 总览先来先服务算法例题 短作业优先例题(非抢占式的短作业优先调度算法)例题(抢占式的短作业优先调度算法)注意 FCFS和SJF两种算法的思考高响应比优先例题 小结 总览 先来先服务算法 不会导致饥饿:只要该进程…

Spring中用到的设计模式

简单工厂模式:BeanFactory 就是简单工厂模式的体现,根据类名创建对象,再根据传入的一个唯一标识来获得 Bean 对象。 工厂方法模式:FactoryBean就是典型的工厂方法模式。spring在使用getBean() 调用获得该 bean 时,会自动调用该 b…

拥抱变局,坚韧向新|复旦大学-华盛顿大学EMBA项目C20毕业典礼

12月初,复旦大学-华盛顿大学EMBA项目20班的学员们前往美国,完成了项目最后一次移动课堂,并在奥林商学院举办了毕业典礼。      20班的学员们在项目20周年之际入学,也是疫情以来第一个正式恢复线下授课的班级。虽然经历了一些波…

C语言基础13

今天是学习嵌入式相关内容的第十四天,以下是今日所学内容 1.结构体: 1.结构体类型定义 2.结构体变量的定义 3.结构体元素的访问 4.结构体的存储 内存对齐 结构体整体的大小必须为最大基本类型长度的整数倍 5.结构体作为函数参数 值传递 练习:定…

【pdf密码】怎么打印加密的PDF文件?

PDF文件是可以打开查看的,但是现在不能编辑、不能打印,功能栏中的功能都是灰色的,这种设置了加密的PDF文件该如何加密? 如果PDF中的大多数功能按钮以及打印按钮都是灰色的状态,那就证明是文件的问题导致不能打印的。 …

sqlmap的使用

2024.1.31 sqlmap支持五种不同的注入模式&#xff1a; 1、布尔盲注2、时间盲注3、报错注入4、联合注入5、堆叠注入 检测注入 GET请求的基本格式 ​python sqlmap.py -u <测试网址> Ps:不知道为什么我的sqlmap使用时前面要加python&#xff0c;而大部分其他教程没提到…

React、React Router、JSX 简单入门快速上手

React、React Router、JSX 简单入门快速上手 介绍特点 JSX使用js表达式渲染列表样式控制注意事项 入门脚手架创建react项目安装目录介绍入口文件解析 组件解析介绍函数式组件类组件 事件绑定注意点定义使用事件对象事件处理函数接收额外参数 组件状态状态的定义使用 组件通信父…

AcWing--子串分值-->贡献法,枚举

2868. 子串分值 - AcWing题库&#xff08;python) s[0] list(input()) #6 nlen(s) # 左边 l[0]*n # 右边 r[0]*n p[0]*26 # 枚举每个 for i in range (1,n): t ord(s[i])-ord("a") l[i]p[t] p[t]i for i in range (26): p[i]n for i in range (n-1,…

SqlServer日期格式转换

一、常用格式转换 Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46 Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967 Select CONVERT(varchar(100), GETDATE(), 20): 2020-05-16 10:57:47 Select CONVERT(varchar(100), GETDATE(), 21): 2020-05-16 10:57…

MySQL 索引 create index 详解

在MySQL中创建索引可以帮助提高查询性能&#xff0c;特别是对于涉及大量数据和复杂查询的表。以下是如何在MySQL中创建索引的基本语法&#xff1a; CREATE [UNIQUE|FULLTEXT] INDEX index_name ON table_name (column1, column2,...) [USING BTREE | HASH]; UNIQUE&#xff…

uniapp中mescroll的使用

1.视图 <mescroll-uniref"mescrollRef"init"mescrollInit"down"downCallback"up"upCallback":up"{auto:false,page:{num:0,size:10}}":fixed"false" </mescroll-uni> 2.js 1. 引入js文件&#xff0c…

Mac 终端可以使用yarn,但是vscode里面报错segmentation fault

Mac 终端可以使用yarn 但是vscode里面报错segmentation fault 查阅官网https://www.yarnpkg.cn/getting-started/install 在vscode运行corepack enable即可解决该问题