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

无障碍快捷方式图标

问题背景

测试反馈,无障碍快捷方式和setting里的无障碍图标不一致。

无障碍快捷方式悬浮窗

1、悬浮窗在systemui中
frameworks\base\packages\SystemUI\src\com\android\systemui\accessibility\floatingmenu\AccessibilityTargetAdapter.java
图标获取方式:

final AccessibilityTarget target = mTargets.get(position);
holder.mIconView.setBackground(target.getIcon());

frameworks\base\packages\SystemUI\src\com\android\systemui\accessibility\floatingmenu\MenuInfoRepository.java

void loadMenuTargetFeatures(OnInfoReady<List<AccessibilityTarget>> callback) {callback.onReady(getTargets(mContext, ACCESSIBILITY_BUTTON));
}

2、数据来源
frameworks\base\core\java\com\android\internal\accessibility\dialog\AccessibilityTargetHelper.java

public static List<AccessibilityTarget> getTargets(Context context,@ShortcutType int shortcutType)

AccessibilityTarget Icon数据来自
frameworks\base\core\java\com\android\internal\accessibility\dialog\AccessibilityServiceTarget.java

AccessibilityServiceTarget(Context context, @ShortcutType int shortcutType,@AccessibilityFragmentType int fragmentType,@NonNull AccessibilityServiceInfo serviceInfo) {super(context,shortcutType,fragmentType,isShortcutContained(context, shortcutType,serviceInfo.getComponentName().flattenToString()),serviceInfo.getComponentName().flattenToString(),serviceInfo.getResolveInfo().serviceInfo.applicationInfo.uid,serviceInfo.getResolveInfo().loadLabel(context.getPackageManager()),serviceInfo.getResolveInfo().loadIcon(context.getPackageManager()),convertToKey(convertToUserType(shortcutType)));
}

由此可见,systemui里直接显示的支持无障碍Service/activity的原图。

setting中的无障碍菜单

Settings\src\com\android\settings\accessibility\RestrictedPreferenceHelper.java

public List<RestrictedPreference> createAccessibilityServicePreferenceList(List<AccessibilityServiceInfo> installedServices) {Drawable icon = resolveInfo.loadIcon(mPm);
}

setting里获取方式和systemUI一样。都是通过service的resolveInfo.loadIcon(mPm);

区别:
setting里把Drawable转换成了AdaptiveIcon,再传给了preference。所以显示圆角。

private RestrictedPreference createRestrictedPreference(){preference.setIcon(Utils.getAdaptiveIcon(mContext, icon, Color.WHITE));
}
创建demo显示在无障碍

是通过android.accessibilityservice.AccessibilityService注册然后系统自动加载进去的。
AndroidManifest.xml

        <serviceandroid:name=".MyAccessibilityService"android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"android:enabled="true"android:exported="false"><intent-filter><actionandroid:name="android.accessibilityservice.AccessibilityService" /></intent-filter><meta-dataandroid:name="android.accessibilityservice"android:resource="@xml/accessibility_service_config" /></service>

res/xml/accessibility_service_config.xml

<?xml version="1.0" encoding="utf-8"?>
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"android:description="@string/setting_accessibility_tip"android:accessibilityEventTypes="typeWindowStateChanged"android:packageNames="com.whatsapp"android:accessibilityFeedbackType="feedbackGeneric"android:notificationTimeout="100"android:accessibilityFlags="flagDefault"android:canRetrieveWindowContent="true"/>

相关文章:

无障碍快捷方式图标

问题背景 测试反馈&#xff0c;无障碍快捷方式和setting里的无障碍图标不一致。 无障碍快捷方式悬浮窗 1、悬浮窗在systemui中 frameworks\base\packages\SystemUI\src\com\android\systemui\accessibility\floatingmenu\AccessibilityTargetAdapter.java 图标获取方式&…...

基于LangChain的RAG开发教程(二)

v1.0官方文档&#xff1a;https://python.langchain.com/v0.1/docs/get_started/introduction/ 最新文档&#xff1a;https://python.langchain.com/v0.2/docs/introduction/ LangChain是一个能够利用大语言模型&#xff08;LLM&#xff0c;Large Language Model&#xff09;能…...

Nifi 与 Kettle

01 Kettle简介 Kettle是一个开源的ETL&#xff08;Extract-Transform-Load&#xff09;工具&#xff0c;可以用于数据集成、数据转换和数据处理等任务。它提供了一组可视化的设计工具&#xff0c;使得用户可以通过简单的拖拽和连接来构建数据流程&#xff0c;并且还支持多种数据…...

uniapp安卓端实现语音合成播报

最初尝试使用讯飞语音合成方式,能获取到语音数据,但是数据是base64格式的,在安卓端无法播放,网上有说通过转成blob格式的url可以播放,但是uniapp不支持转换的api;于是后面又想其他办法,使用安卓插件播报原生安卓语音播报插件 - DCloud 插件市场 方案一(讯飞语音合成) 1.在讯飞…...

Studying-代码随想录训练营day31| 56.合并区间、738.单调递增的数字、968.监控二叉树、贪心算法总结

第31天&#xff0c;贪心最后一节(ง •_•)ง&#x1f4aa;&#xff0c;编程语言&#xff1a;C 目录 56.合并区间 738.单调递增的数字 968.监控二叉树 贪心算法总结 56.合并区间 文档讲解&#xff1a;代码随想录合并区间 视频讲解&#xff1a;手撕合并区间 题目&#xf…...

springboot装修接单平台-计算机毕业设计源码25005

摘要 随着装修行业的快速发展和数字化趋势&#xff0c;传统的装修接单方式已显不足以满足用户需求&#xff0c;因此建立一个便捷高效的平台具有重要意义。通过利用Java语言的跨平台特性和强大的编程能力&#xff0c;结合SpringBoot框架的快速开发特性和Mysql数据库的稳定性&…...

matlab仿真 信道(下)

&#xff08;内容源自详解MATLAB&#xff0f;SIMULINK 通信系统建模与仿真 刘学勇编著第四章内容&#xff0c;有兴趣的读者请阅读原书&#xff09; 之前的内容还剩下simulink的仿真过程。 3.simulink中的AWGN模块仿真 系统框图如图所示&#xff0c;TX和RX 模块需要单独实现…...

华宇携TAS应用中间件亮相2024年山东江信智能信创产品推介会

信创产业是数据、网络安全的基础&#xff0c;也是“新基建”的重要内容&#xff0c;将成为拉动经济发展的重要抓手之一。 7月5日&#xff0c;以“信守时代机遇&#xff0c;创造辉煌未来”为主题的山东江信智能信创产品推介会在济南举办。本次产品推介会汇聚了国内众多信息技术…...

单向链表的数据存储(申请堆空间)

函数功能&#xff1a; 0.排序&#xff08;逆置和顺序排序&#xff09; 1.回显 2.头插 3.位插 4.尾插 5.尾删 6.头删 7.位删 8.查找 &#xff08;按值或按位查找&#xff09; 9.修改 &#xff08;按值或按位修改&#xff09; 10.退出 main.c …...

MySQL8之mysql-community-common的作用

在MySQL 8中&#xff0c;mysql-community-common是一个软件包&#xff0c;它提供了MySQL服务器和客户端库所需的一些共同文件。具体来说&#xff0c;mysql-community-common的作用包括但不限于以下几点&#xff1a; 1. 提供基础配置和错误信息 错误信息和字符集包&#xff1a…...

Emacs有什么优点,用Emacs写程序真的比IDE更方便吗?

Emacs 是一个功能强大的文本编辑器和应用程序框架&#xff0c;它拥有众多的优点&#xff0c;这些优点使得它在某些情况下成为编程的强大工具。然而&#xff0c;是否用 Emacs 写程序比 IDE 更方便&#xff0c;这很大程度上取决于个人的工作习惯和偏好。 Emacs 的主要优点包括&a…...

如何切换手机的ip地址

在数字时代的浪潮中&#xff0c;智能手机已成为我们日常生活中不可或缺的一部分。然而&#xff0c;随着网络安全问题的日益凸显&#xff0c;保护个人隐私和数据安全变得尤为重要。其中&#xff0c;IP地址作为网络身份的重要标识&#xff0c;其安全性与隐私性备受关注。本文将详…...

前端画图引擎ZRender,echarts的渲染器,你知道吗?

Zrender是一个轻量级的Canvas和SVG渲染库&#xff0c;它提供了一个高性能的图形绘制和交互的解决方案&#xff0c;用于在Web页面上创建丰富的数据可视化和交互式图形。 可能大部分小伙伴不知道这个类库&#xff0c;本文给大家科普一下。 一、Zrender是谁&#xff1f; 该项目…...

web前端开发——标签一

今天我来针对web前端开发讲解标签一 Html标签_标题&段落&换行 注释标签&#xff1a;Ctrl/ Ctrl/ &#xff0c;用户可能会获取到注释标签 注释的原则: •和代码逻辑一致 •尽量使用中文 •正能量 标题标签&#xff1a;<h1></h1> h1-h6 标题标签有6…...

【深度学习】探讨最新的深度学习算法、模型创新以及在图像识别、自然语言处理等领域的应用进展

深度学习作为人工智能领域的重要分支&#xff0c;近年来在算法、模型以及应用领域都取得了显著的进展。以下将探讨最新的深度学习算法与模型创新&#xff0c;以及它们在图像识别、自然语言处理&#xff08;NLP&#xff09;等领域的应用进展。 一、深度学习算法与模型创新 新型…...

使用 mongo2neo4j 和 SemSpect 通过各种方式进行图探索

用于可视化和探索每个 MEAN 堆栈背后的数据图的 ETL 您是否正在努力回答有关 MEANS Web 服务数据的紧急问题&#xff1f;哪里有 BI 可以快速回答“上个季度哪些亚洲的artisan.plus 用户触发了订单&#xff1f;”这个问题&#xff0c;而无需编写查询&#xff1f;使用 mongo2neo4…...

淘宝卖家难免遇到的商品问题 在淘宝买的东西出问题了,该如何维权

很多朋友对于淘宝卖家难免遇到的商品问题和在淘宝买的东西出问题了&#xff0c;该如何维权不太懂&#xff0c;今天就由小编来为大家分享&#xff0c;希望可以帮助到大家&#xff0c;下面一起来看看吧&#xff01; [1] 淘宝买东西&#xff0c;过了售后期&#xff0c;有质量问题怎…...

ffmpeg 安装 h264(x264)encoder

#下载并安装x264 # 切换root用户 sudo -i # 输入密码cd ~ mkdir FFmpeg7#下载并安装x264 git clone https://code.videolan.org/videolan/x264.git cd x264 mkdir build./configure --help # 报缺少asm 时 可加入--disable-asm # --prefix/home/llh/ffmpeg/build/ 指定安装目录…...

Java项目:基于SSM框架实现的健康综合咨询问诊平台【ssm+B/S架构+源码+数据库+毕业论文】

一、项目简介 本项目是一套基于SSM框架实现的健康综合咨询问诊平台 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单、…...

SpringBoot源码阅读(4)——事件

从监听器到事件 SpringApplication运行中触发事件&#xff0c;多播器发送事件到监听器&#xff0c;监听器处理事件。 SpingApplication中事件都是经过SpringApplicationRunListeners类传送到各个监听器。 以starting事件为例 void starting(ConfigurableBootstrapContext boo…...

ArcGIS核密度分析实战:基于上海市餐饮POI的商业热点识别

1. 核密度分析能帮你做什么&#xff1f; 如果你正在考虑开一家餐厅&#xff0c;或者想了解上海哪些区域餐饮业最发达&#xff0c;核密度分析就是你的好帮手。简单来说&#xff0c;这个技术可以把一堆分散的餐饮店位置数据&#xff0c;变成一张直观的"热度地图"。我去…...

Windows下用CMake和MinGW编译NLopt 2.6.2的完整指南(附测试代码)

Windows平台下NLopt 2.6.2源码编译与实战应用全解析 在科学计算与工程优化领域&#xff0c;NLopt作为一款开源的非线性优化库&#xff0c;因其丰富的算法支持和跨平台特性而广受欢迎。本文将深入探讨如何在Windows系统中从零开始构建NLopt 2.6.2开发环境&#xff0c;并通过完整…...

Qwen2.5-Coder-1.5B应用案例:快速生成网页爬虫代码实战

Qwen2.5-Coder-1.5B应用案例&#xff1a;快速生成网页爬虫代码实战 1. 引言&#xff1a;为什么选择Qwen2.5-Coder生成爬虫代码 在日常开发工作中&#xff0c;网页爬虫是数据采集和分析的重要工具。传统编写爬虫代码需要开发者熟悉HTTP请求、HTML解析、反爬机制处理等多个技术…...

CLIP-GmP-ViT-L-14实操手册:批量图片上传+多提示词并行计算优化

CLIP-GmP-ViT-L-14实操手册&#xff1a;批量图片上传多提示词并行计算优化 1. 项目概述 CLIP-GmP-ViT-L-14是一个经过几何参数化(GmP)微调的CLIP模型&#xff0c;在ImageNet和ObjectNet数据集上达到了约90%的准确率。这个强大的视觉-语言模型能够理解图片内容并将其与文本描述…...

Android设备性能优化:Universal Android Debloater的技术实现与应用指南

Android设备性能优化&#xff1a;Universal Android Debloater的技术实现与应用指南 【免费下载链接】universal-android-debloater Cross-platform GUI written in Rust using ADB to debloat non-rooted android devices. Improve your privacy, the security and battery li…...

ChatGLM-6B角色扮演功能开发:基于Prompt的智能对话系统

ChatGLM-6B角色扮演功能开发&#xff1a;基于Prompt的智能对话系统 1. 引言 想象一下&#xff0c;你正在开发一个智能客服系统&#xff0c;需要让AI能够扮演不同角色的专业人士来回答用户问题。或者你正在创建一个教育应用&#xff0c;希望AI能够化身历史人物、科学导师或文学…...

零基础上手!基于vLLM的GLM-4-9B-Chat-1M模型保姆级部署指南

零基础上手&#xff01;基于vLLM的GLM-4-9B-Chat-1M模型保姆级部署指南 1. 模型简介与核心优势 GLM-4-9B-Chat-1M是智谱AI推出的最新一代开源对话模型&#xff0c;基于vLLM框架部署&#xff0c;支持惊人的1M上下文长度&#xff08;约200万中文字符&#xff09;。这个模型在多…...

智能车小白也能懂的舵机PD控制:从电感差比和到方向控制,保姆级避坑指南

智能车方向控制入门&#xff1a;用PD算法驯服你的舵机 第一次看到智能车在赛道上流畅过弯时&#xff0c;很多人都会好奇——这辆小车是如何感知赛道边界并精准控制方向的&#xff1f;作为电磁组智能车的核心部件&#xff0c;舵机就像车辆的"方向盘"&#xff0c;而PD控…...

高效解决Magpie插件更新难题:完全掌握图像增强功能升级指南

高效解决Magpie插件更新难题&#xff1a;完全掌握图像增强功能升级指南 【免费下载链接】Magpie An all-purpose window upscaler for Windows 10/11. 项目地址: https://gitcode.com/gh_mirrors/mag/Magpie 识别插件更新需求&#xff1a;为何及时升级至关重要 在使用M…...

YimMenu终极指南:5大核心功能打造安全的GTA5增强体验

YimMenu终极指南&#xff1a;5大核心功能打造安全的GTA5增强体验 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMe…...