当前位置: 首页 > news >正文

Android 你遇到的无障碍onGesture不执行

你是不是和我一样,在开发无障碍应用的时候,翻边了Android的AccessibilityService源码
但是就是发现不了onGesture不执行的原因?

你是不是和我一样,在好多测试手机之间徘徊,发现还是不执行?

你是不是和我一样开始怀疑自己当前Android api版本?

你是不是翻阅Android官方文档好几遍?

你是不是百度了好久都没找到合适的答案?

如果以上你都遇到了,就证明你的语文阅读能力不达标。请你仔细阅读android的官方文档。
 

监听手势
无障碍服务可以监听特定手势,并通过代表用户执行操作进行响应。此功能是在 Android 4.1(API 级别 16)中添加的,它要求无障碍服务请求激活“触摸浏览”功能。服务请求激活该功能的方法是将其 AccessibilityServiceInfo 实例的 flags 成员设为 FLAG_REQUEST_TOUCH_EXPLORATION_MODE,如以下示例所示。
public class MyAccessibilityService extends AccessibilityService {
@Override
public void onCreate() {
getServiceInfo().flags = AccessibilityServiceInfo.FLAG_REQUEST_TOUCH_EXPLORATION_MODE;
}
…
}
服务请求激活“触摸浏览”之后,用户必须允许开启该功能(如果尚未激活)。激活此功能后,服务可通过其 onGesture() 回调方法接收无障碍手势的通知,并且可以通过为用户执行操作进行响应。
————————————————from("世纪")原文链接:https://blog.csdn.net/qq_39469700/article/details/123831250

仔细阅读“触摸浏览”是什么。我最开始就有这个疑问,因为没有接触过所以一直碰壁。

触摸浏览我个人认为就是:

类似于talkback读屏下选中屏幕控件焦点的一种无障碍浏览方式,它支持滑动选中,双击执行,
三指滑动屏幕。

所以说我们需要把“触摸浏览”的相关配置,配置ok就OK了。点击flags的成员配置静态变量,官方文档会看到如下:
 

标记_请求_触摸_探索_模式在API 级别 16中添加
public static final int FLAG_REQUEST_TOUCH_EXPLORATION_MODE此标志请求系统进入触摸探索模式。
在这种模式下,在屏幕上移动的单个手指就像鼠标指针悬停在用户界面上一样。系统还将检测在触摸屏上执行的某些手势并通知此服务。如果至少有一个无障碍服务设置了此标志,系统将启用触摸探索模式。因此,清除此标志并不能保证设备不会处于触摸探索模式,因为可能有另一个启用的服务请求它。
对于面向 Android 4.3(API 级别 18)或更高版本的无障碍服务,
想要设置此标志,必须通过将属性设置 canRequestTouchExplorationMode为 true 在其元数据中声明此功能
否则,该标志将被忽略。
针对 Android 4.2.2(API 级别 17)或更低版本的服务将正常运行。换句话说,第一次运行时,如果指定了此标志,则会向用户显示一个对话框,以确认启用触摸浏览。

仔细查看我加黑的地方,在我百度了好久之后,发现好多小伙伴和我一样,一直执着为什么不执行。但就是不仔细查看官方文档。并且有些结果很鸡肋也很没用。
 

<?xml version="1.0" encoding="utf-8"?>
<accessibility-servicexmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:description="@string/accessibility_desc"android:accessibilityEventTypes="typeAllMask"android:accessibilityFeedbackType="feedbackGeneric"android:accessibilityFlags="flagReportViewIds|flagIncludeNotImportantViews|flagRequestTouchExplorationMode|flagRequestFingerprintGestures"android:canRetrieveWindowContent="true"android:canRequestFilterKeyEvents="true"android:canPerformGestures="true"android:notificationTimeout="0"android:canRequestFingerprintGestures="true"tools:targetApi="o"/>
并且您的配置文件也要添加其他的type这里我就不多说了 ,官方文档很清晰。需要什么添加什么。


最后就完美的解决了 ,您的手势就可以识别到了,并且是全局的,这时你会发现手机卡了,这里说明一下是因为这个手势监听,本就是为了有障人群浏览屏幕信息和一些快捷操作而定的。并不是让你搞黑产弄的,如过想不卡可以去了解一下

 

如果想做成全局的,你可以做成x什么pode的面具插件。

最后我在说一句,别人写的你用到就看看,心情好就给个赞,好多乐色抄袭别人的博客,导致现在优质博客全部需要金额,而且你抄袭就抄袭,你的markdown语法能不能也抄上,你的一篇文章都是代码,而且是左对齐,你很牛你知道吗!

相关文章:

Android 你遇到的无障碍onGesture不执行

你是不是和我一样&#xff0c;在开发无障碍应用的时候&#xff0c;翻边了Android的AccessibilityService源码 但是就是发现不了onGesture不执行的原因&#xff1f; 你是不是和我一样&#xff0c;在好多测试手机之间徘徊&#xff0c;发现还是不执行&#xff1f; 你是不是和我一…...

Java学习10

目录 一.多态&#xff1a; 1.方法的多态&#xff1a; 2.对象的多态&#xff1a; 3.多态的注意事项与细节&#xff1a; 5.多态的应用: 二.Java的动态绑定机制&#xff1a; 三.多态应用&#xff1a; 1.多态数组&#xff1a; 2.多态参数&#xff1a; 三.Object类&#xf…...

第二十章 TypeScript(webpack构建ts+vue3项目)

构建项目目录 src-- main.ts-- App.vue--shim.d.tswebpack.config.jsindex.htmlpackage.jsontsconfig.json 基础构建 npm install webpack -D npm install webpack-dev-server -D npm install webpack-cli -D package.json 添加打包命令和 启动服务的命令 {"scripts…...

白酒:陈酿过程中的老熟度评价与品质提升方法

在豪迈白酒的酿造过程中&#xff0c;陈酿是一个至关重要的环节。陈酿不仅能使白酒老熟&#xff0c;提品质&#xff0c;还能发展出与众不同的风味和口感。云仓酒庄深知陈酿的重要性&#xff0c;并进行了深入的研究和实践。本文将探讨陈酿过程中的老熟度评价与品质提升方法。 首先…...

BoostSeacher

前言&#xff1a; 基于Boost库的搜索引擎 为何基于Boost库&#xff1f; 从技术上说&#xff1a;这个项目用了很多Boost库的接口从搜索引擎存储内说&#xff1a;存储的内容是Boost库的内容预期效果 预期效果:用户在浏览器输入关键词&#xff0c;浏览器显示相关结果 STEP1&#x…...

我的算法刷题笔记(3.18-3.22)

我的算法刷题笔记&#xff08;3.18-3.22&#xff09; 1. 螺旋矩阵1. total是总共走的步数2. int[][] directions {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};方位3. visited[row][column] true;用于判断是否走完一圈 2. 生命游戏1. 使用额外的状态22. 再复制一份数组 3. 旋转图像观…...

初探Ruby编程语言

文章目录 引言一、Ruby简史二、Ruby特性三、安装Ruby四、命令行执行Ruby五、Ruby的编程模型六、案例演示结语 引言 大家好&#xff0c;今天我们将一起探索一门历史悠久、充满魅力的编程语言——Ruby。Ruby是由松本行弘&#xff08;Yukihiro Matsumoto&#xff09;于1993年发明…...

深圳MES系统如何提高生产效率

深圳MES系统可以通过多种方式提高生产效率&#xff0c;具体如下&#xff1a; 实时监控和分析&#xff1a;MES系统可以实时收集并分析生产数据&#xff0c;帮助企业及时了解生产状况&#xff0c;发现问题并迅速解决&#xff0c;避免问题扩大化。这种实时监控和分析功能可以显著…...

QT常见Layout布局器使用

布局简介 为什么要布局&#xff1f;通过布局拖动不影响鼠标拖动窗口的效果等优点.QT设计器布局比较固定&#xff0c;不方便后期修改和维护&#xff1b;在Qt里面布局分为四个大类 &#xff1a; 盒子布局&#xff1a;QBoxLayout 网格布局&#xff1a;QGridLayout 表单布局&am…...

Elasticsearch8 - Docker安装Elasticsearch8.12.2

前言 最近在学习 ES&#xff0c;所以需要在服务器上装一个单节点的 ES 服务器环境&#xff1a;centos 7.9 安装 下载镜像 目前最新版本是 8.12.2 docker pull docker.elastic.co/elasticsearch/elasticsearch:8.12.2创建配置 新增配置文件 elasticsearch.yml http.host…...

还在为不知道怎么学习网络安全而烦恼吗?这篇文带你从入门级开始学习网络安全—认识网络安全

随着网络安全被列为国家安全战略的一部分&#xff0c;这个曾经细分的领域发展提速了不少&#xff0c;除了一些传统安全厂商以外&#xff0c;一些互联网大厂也都纷纷加码了在这一块的投入&#xff0c;随之而来的吸引了越来越多的新鲜血液不断涌入。 不同于Java、C/C等后端开发岗…...

DFS基础——迷宫

迷宫 配套视频讲解 关于dfs和bfs的区别讲解。 对于上图&#xff0c;假设我们要找从1到5的最短路&#xff0c;那么我们用dfs去找&#xff0c;并且按照编号从大到小的顺序去找&#xff0c;首先找到的路径如下&#xff0c; 从节点1出发&#xff0c;我们发现节点2可以走&#xff…...

iOS开发进阶(九):OC混合开发嵌套H5应用并互相通信

文章目录 一、前言二、嵌套H5应用并实现双方通信2.1 WKWebView 与JS 原生交互2.1.1 H5页面嵌套2.1.2 常用代理方法2.1.3 OC调用JS方法2.1.4 JS调用OC方法 2.2 JSCore 实现原生与H5交互2.2.1 OC调用H5方法并传参2.2.2 H5给OC传参 2.3 UIWebView的基本用法2.3.1 H5页面嵌套2.3.2 …...

新人应该从哪几个方面掌握大数据测试?

什么是大数据 大数据是指无法在一定时间范围内用传统的计算机技术进行处理的海量数据集。 对于大数据的测试则需要不同的工具、技术、框架来进行处理。 大数据的体量大、多样化和高速处理所涉及的数据生成、存储、检索和分析使得大数据工程师需要掌握极其高的技术功底。 需要你…...

linux debian运行pip报错ssl tsl module in Python is not available

写在前面 ① 在debian 8上升级了Python 3.8.5 ② 升级了openssl 1.1.1 问题描述 在运行pip命令时提示如下错误 pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.尝试了大神推荐的用如下方法重新编译安装python,发…...

宝塔设置限制ip后,ip改了之后 ,登陆不上了

前言 今天作死&#xff0c;在宝塔面板设置界面&#xff0c;将访问面板的ip地址限制成只有自己电脑的ip才能访问&#xff0c;修改之后直接人傻了&#xff0c;“403 forbidden”。吓得我直接网上一通搜索&#xff0c;还好&#xff0c;解决方法非常简单。 解决方法 打开ssh客户…...

解锁新功能,Dynadot现支持BITPAY平台虚拟货币

Dynadot现已支持虚拟货币付款&#xff01;借助与BitPay平台的合作&#xff0c;Dynadot为您提供了多种安全的虚拟货币选择。我们深知每位客户都有自己偏好的支付方式&#xff0c;因此我们努力扩大了支付方式范围。如果您对这一新的支付方式感兴趣&#xff0c;在结账时您可以尝试…...

Android下的Touch事件分发详解

文章目录 一、事件传递路径二、触摸事件的三个关键方法2.1 dispatchTouchEvent(MotionEvent ev)2.2 onInterceptTouchEvent(MotionEvent ev)2.3 onTouchEvent(MotionEvent event) 三、ViewGroup中的dispatchTouchEvent实现四、总结 在Android系统中&#xff0c;触摸事件的分发和…...

uniapp的配置文件、入口文件、主组件、页面管理部分

pages.json 配置文件&#xff0c;全局页面路径配置&#xff0c;应用的状态栏、导航条、标题、窗口背景色设置等 main.js 入口文件&#xff0c;主要作用是初始化vue实例、定义全局组件、使用需要的插件如 vuex&#xff0c;注意uniapp无法使用vue-router&#xff0c;路由须在pag…...

B端设计:如何让UI组件库成为助力,而不是阻力。

首发2023-09-24 15:42贝格前端工场 Hi&#xff0c;我是大千UI工场&#xff0c;网上的UI组件库琳琅满目&#xff0c;比如elementUI、antdesign、iview等等&#xff0c;甚至很多前端框架&#xff0c;也出了很多UI组件&#xff0c;如若依、Layui、bootstrap等等&#xff0c;作为U…...

告别C盘战士!ArcGIS 10.6安装路径选择与磁盘空间优化全攻略

告别C盘战士&#xff01;ArcGIS 10.6安装路径选择与磁盘空间优化全攻略当GIS初学者第一次安装ArcGIS 10.6时&#xff0c;往往会被其庞大的安装体积所震惊。许多用户习惯性地点击"下一步"&#xff0c;结果发现C盘空间被迅速吞噬&#xff0c;系统运行变得迟缓。本文将深…...

2026长沙智能家居品牌实测,这些本地老牌值得选

2026年&#xff0c;长沙的智能家居市场已经从“概念热”转向“落地战”。我走访了长沙多个本地服务商&#xff0c;实测了不同品牌在别墅、酒店、大平层等场景的真实表现。今天&#xff0c;结合数据与案例&#xff0c;分享几个值得关注的本地品牌&#xff0c;尤其是深耕8年以上的…...

基于ESP8266与MQTT的家庭水压自动控制系统设计与实现

1. 项目概述与核心需求解析家里水压不稳、供水时断时续&#xff0c;这大概是很多朋友都遇到过的烦心事。我所在的城市供水情况就很不理想&#xff0c;为了解决这个问题&#xff0c;我不得不自己动手&#xff0c;搭建了一套基于ESP8266微控制器的家庭水压增压与储水自动控制系统…...

YOLOv8晶圆体缺识别检测系统(项目源码+YOLO数据集+模型权重+UI界面+python+深度学习+环境配置)

摘要 晶圆制造过程中的缺陷检测是保证芯片良率的关键环节。本文基于YOLOv8目标检测算法&#xff0c;构建了一套针对晶圆表面9类典型缺陷的自动检测系统。所识别的缺陷类型包括&#xff1a;Center、Donut、Edge-Loc、Edge-Ring、Loc、Near-full、None、Random、Scratch。模型在…...

简单学习 --> SSE

我们使用AI时&#xff0c;AI对我们说的话不会一次性把全部内容弹出来&#xff0c;而是会像流水一样&#xff0c;一点点吐出来&#xff0c;那么这种丝滑的交互体验&#xff0c;背后的核心就是 SSE (Server-Sent Events)。 什么是 SSE&#xff1f; SSE&#xff08;Server-Sent …...

用图神经网络做缺陷定位,准确率比传统方法高出30%

在现代软件工程的复杂迷宫中&#xff0c;缺陷定位始终是测试团队面临的核心挑战。想象这样一个场景&#xff1a;一个电商系统在特定压力条件下偶发订单丢失&#xff0c;日志中只留下泛泛的超时错误&#xff0c;问题可能深藏在上百个微服务的调用链、分布式事务的竞态条件或某个…...

基于Arduino与蓝牙模块的六路无线开关控制系统设计与实现

1. 项目概述&#xff1a;用手机蓝牙控制六路LED想不想把手机变成一个无线遥控器&#xff0c;随手一点就能开关家里的灯带、氛围灯&#xff0c;甚至是其他电器&#xff1f;这个项目就是为你准备的。它基于一块功能增强的Arduino兼容板——GlowDuino Uno&#xff0c;配合一个极其…...

基于PIC32单片机实现Android USB音频转SPDIF输出的DIY方案

1. 项目概述&#xff1a;为Android设备打造一个高保真SPDIF音频接口作为一名长期折腾嵌入式音频和家庭影院的玩家&#xff0c;我经常遇到一个痛点&#xff1a;手头那些性能不错的Android手机或平板&#xff0c;其内置的3.5mm耳机孔或者USB-C口的音频输出质量&#xff0c;在连接…...

用ESP32-C3的PWM做个RGB呼吸灯吧:从配置结构体到色彩渐变(乐鑫ESP-IDF实战)

ESP32-C3 RGB呼吸灯实战&#xff1a;从PWM配置到色彩渐变算法 当智能家居的灯光不再只是简单的开关控制&#xff0c;而是能像呼吸般自然渐变时&#xff0c;整个空间的氛围立刻变得生动起来。ESP32-C3凭借其出色的LED PWM控制器&#xff08;LEDC&#xff09;外设&#xff0c;为开…...

Python Android打包终极指南:5个实战技巧解决移动开发痛点

Python Android打包终极指南&#xff1a;5个实战技巧解决移动开发痛点 【免费下载链接】python-for-android Turn your Python application into an Android APK 项目地址: https://gitcode.com/gh_mirrors/py/python-for-android Python-for-Android&#xff08;简称p4…...