无障碍快捷方式图标

问题背景

测试反馈,无障碍快捷方式和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"/>

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

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

相关文章

数据结构笔记之连通图与强连通图

一、引言 在图论中&#xff0c;我们常常会遇到连通图和强连通图的概念。它们描述了图中顶点之间的连接情况&#xff0c;对于理解和分析复杂网络具有重要意义。 二、连通图 定义&#xff1a;若图G中任意两个顶点都是连通的&#xff0c;则称图G为连通图&#xff1b;否则称为非…

如何使用可道云结合内网穿透工具实现远程访问打造私人云盘

文章目录 1.前言2. Kodcloud网站搭建2.1. Kodcloud下载和安装2.2 Kodcloud网页测试 3. cpolar内网穿透的安装和注册4. 本地网页发布4.1 Cpolar云端设置4.2 Cpolar本地设置 5. 公网访问测试6.结语 &#x1f4a1; 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易…

【HTML入门】第十课 - 表格,也就是table标签

这一小节&#xff0c;我们说一下HTML中的表格。比如我们常常看见的学生成绩单&#xff0c;比如excel一个单元格一个单元格的&#xff0c;这些都是表格。 表格的标签名是 table 。 目录 1 表格中的一些子标签 1.1 表头区域 1.2 表格内容区域 1.3 行和列 2 实战一小下 2.…

Python:数学运算及导入math的应用

guess&#xff1f; x 3 - 1 2 * 2 ** 3 % 2 # 算术运算 # 精度高 print(5 / 3) # 保留整数 向下取整 print(5 // 3) # 取余数 print(5 % 3) # n*m 表示有m个n print(* * 3) # n**m 表示n的m次方 print(10 ** 3) # 没有自增自减 写成 x-1 x1# 运算优先级&#xff1a; # 括号里…

JavaWeb(一:基础知识和环境搭建)

一、基本概念 1.前言 JavaWeb&#xff1a;在Java中&#xff0c;动态web资源开发网页的技术。 web应用分两种&#xff1a;静态web资源和动态web资源 Ⅰ. 静态web资源&#xff08;如html 页面&#xff09;&#xff1a; 指web页面中的数据始终是不变。 所有用户看到都是同一个…

【nginx】一般nginx会和目标服务部署在同一台服务器上?

Nginx与目标服务&#xff08;如Web应用、API服务等&#xff09;是否部署在同一台服务器上&#xff0c;主要取决于具体的部署策略、系统资源、安全性以及维护便捷性等多方面因素。实际上&#xff0c;Nginx与目标服务部署的位置关系可以有多种不同的选择&#xff1a; 部署在同一…

python编程实例 输出两个数之间的素数

#输出两个数之间有多少素数 import math mint(input("开始&#xff1a;")) nint(input("结束&#xff1a;")) for i in range(m,n1):for j in range(2,int(math.sqrt(i))1):if i%j0:breakif(jint(math.sqrt(i))):print(str(i),"是一个素数")

Netty服务端接收TCP链接数据

注&#xff1a;使用netty之前&#xff0c;需要先引入netty包&#xff0c;不同的框架&#xff0c;引入netty包的方式不同 1.定义NettyServer类 用于初始化netty连接 public class NettyServer {public void start() throws Exception {System.out.println("启动记载nett…

DP(2) | Java | LeetCode 62, 63, 343, 96 做题总结(96 未完)

62.不同路径 我的代码&#xff08;报错&#xff09; 写的过程中感到很迷惑的点&#xff1a;①二维数组和这道题目的对应弄不清除&#xff0c;m n的初始化 是 dp[m][n] 还是 dp[n][m] ② class Solution {public int uniquePaths(int m, int n) {int[][]dp new int[m1][n1];d…

Spring开发实践(六)

EnableConfigurationProperties注解的用法 EnableConfigurationProperties 是 Spring Boot 中的一个注解&#xff0c;用于启用对 ConfigurationProperties 注解的支持。它通常用于将配置属性绑定到一个 Java Bean 上。以下是它的用法和示例&#xff1a; 1. 创建配置属性类 首…

单目3D和bev综述

文章目录 SOTA2D 检测单目3d检测单目bev&#xff0c;一般是多目&#xff0c;小鹅通3d bev cam范式Transformer attention is all you need 2017ViT vision transformer ICLR 2021googleDETR 2020DETR3D 2021PETR 2022bevformerLSSbevdetcaddn指标 mAP NDS标注&#xff1a;基于点…

Redis的五种数据类型 #系统架构设计师#

数据类型说明常用方法stringString类型是包含很多种类型的特殊类型&#xff0c;并且是二进制安全的。比如序列化的对象进行存储&#xff0c;比如一张图片进行二进制存储&#xff0c;比如一个简单的字符串、数值等等、 set、get、del方法&#xff1a; 设置值&#xff1a;s…

Nvidia显卡名词解释

GPU&#xff08;硬件&#xff09;指的就是显卡。 cuda, cudnn等一系列名词都是服务gpu而开发的 NVIDIA Drive&#xff08;软件&#xff09;指的是驱动软件 CUDA&#xff08;软件&#xff09;负责计算和编译的软件平台 NVCC指的是CUDA的编译器 CUDNN&#xff08;软件包管理工具&…

利用js实现图片压缩功能

图片压缩在众多应用场景中扮演着至关重要的角色&#xff0c;尤其是在客户端上传图片时。原始图片往往体积庞大&#xff0c;直接上传不仅消耗大量带宽资源&#xff0c;还可能导致上传速度缓慢&#xff0c;严重影响用户体验。因此&#xff0c;在图片上传至服务器前对其进行压缩处…

嵌入式开发过程中,常见报错以及解决方法

编写不易&#xff0c;仅供学习&#xff0c;参考谢谢&#xff0c;还望理解。 #常见报错 文件最后一行没有新行 翻译&#xff1a;文件的最后一行结束时没有新行 解决方法&#xff1a;定位到&#xff0c;提示报错的 .h 文件 报错行 &#xff0c;加上一个新行 函数定义时与官方提…

网信大数据信用报告查询怎么查?网信大数据有什么作用?

随着互联网的快速发展&#xff0c;大数据技术已经广泛应用于各行各业。其中&#xff0c;网信大数据信用报告查询成为了许多人关注的焦点。那么&#xff0c;如何查询网信大数据信用报告呢?网信大数据又有哪些作用呢?本文将为您一一解答。 一、如何查询网信大数据信用报告? 要…

NodeJS校园快递智能互助平台-计算机毕业设计源码58554

摘 要 随着校园人口的增加和生活节奏的加快&#xff0c;校园快递成为一个重要的服务需求。然而&#xff0c;传统的校园快递方式存在一些问题&#xff0c;例如无法满足快速和高效的需求&#xff0c;易发生丢失或损坏的情况&#xff0c;同时也给快递人员和用户带来不便。因此&am…

C++ 实现图书馆资料管理系统

1、问题描述 &#xff1a; 图书馆中的资料很多&#xff0c;如果能分类对其资料流通进行管理&#xff0c;将会带来很多方 便&#xff0c;因此需要有一个媒体库管理系统。 图书馆共有三大类物品资料&#xff1a;图书、视频光盘、图画。 这三类物品共同具有的属性有&#xff1a;编…

LangChain Cookbook Part 1

参考自https://github.com/gkamradt/langchain-tutorials/blob/main/LangChain%20Cookbook%20Part%201%20-%20Fundamentals.ipynb LangChain食谱-1 这个文档基于LangChain Conceptual Documentation 目标是介绍LangChain组件和用例 什么是LangChain&#xff1f; LangChain是…

REST简介

REST&#xff08;Representational State Transfer&#xff0c;表现层状态转移&#xff09;是一种软件架构风格&#xff0c;用于设计网络应用程序。它是由Roy Fielding在他的2000年的博士论文中定义的。REST模型基于使用HTTP协议进行通信的客户端-服务器系统&#xff0c;并且具…