范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

网络热传App鉴定李跳跳里用到的无障碍权限是什么?

  「李跳跳」是什么?
  一款用于 跳过开屏广告 的工具类应用。
  其核心的原理,是借助Android系统上提供的 无障碍 功能,检测出当前界面上跳过 按钮的位置,并自动帮我们完成点击 的动作。 「无障碍」功能是什么?
  解释这个概念之前,我们先来看几张图:
  无障碍电梯
  无障碍洗手间
  无障碍坡道
  以上这些都是在公园、地铁等的公共场所里常见的设施,目的是为了保障残疾人、老年人及其他行动不便者能安全、方便地通行,体现的是对于社会少数群体的关怀和尊重。
  无障碍功能的设计初衷也是如此,同样是 为了照顾到部分视力/听力受损、有认知障碍或无法完成精细动作的残障人士,使他们也能够和其他正常人一样,无障碍地使用手机应用来完成日常的沟通、学习和工作 。
  除此以外,无障碍功能还可以 弥补应用在某些使用场景上的限制 ,比如在烹饪的同时使用菜谱类的应用,有了无障碍功能的辅助,我们就可以使用语音指令而非触控手势来操控应用了。
  无障碍功能
  Android系统上提供的无障碍功能,实际可分为两个不同层面上的内容:
  设计层面上,它要求应用界面上的元素:  控件尺寸尽可能大,以方便用户点按 ; 色彩对比度尽可能高,以方便用户查看 ;
  低于建议的色彩对比度(左图)和足够高的色彩对比度(右图)  尽可能包含能描述控件实际用途的说明文字 。
  仅使用颜色创建界面元素的示例(左图),以及使用颜色、形状和文字创建界面元素的示例(右图)
  操作层面上,它要求应用内提供的服务:  尽可能为用户的每个操作提供及时、有效的反馈  尽可能简化操作的步骤,或协助用户完成复杂操作
  后者主要依赖平台级的「无障碍服务」( AccessibilityService )来实现。 「无障碍服务」能做什么?
  Android系统提供了许多标准的无障碍服务实现,比如 TalkBack 这项服务,其提供了与屏幕交互时的实时语音反馈,对于盲人和视力低弱人士非常实用。
  TalkBack
  同时Android也允许开发者创建和分发自己的服务,以增强与用户的互动效果,打造运用范围更广的功能。
  具体展开讲的话,自定义的无障碍服务通常包含对以下几个事项的处理:  收集信息
  这里收集的主要是 与界面交互相关的信息 ,包括所操作对象的类型、其包含的描述性文字以及其他详细信息。
  我们知道,Android应用所采用的界面布局,是基于 View 和ViewGroup 对象、以树状结构 来进行构建的视图层级。
  视图层次结构的图示,它定义了一个界面布局
  Android系统正是基于此视图层级结构编写的无障碍事件,也即,它不仅会返回用户当前所交互的控件本身,还会返回包含此控件的父视图,以及此控件所包含的一系列子视图,这部分额外的信息统称为控件的 上下文信息 。
  上下文信息对于用户理解其所交互控件的含义至关重要。
  以一个简单的复选框为例,对于一个有视力障碍的用户来说,如果无障碍服务仅仅反馈"是否选中",而未能说明"选中的是什么内容",用户就会感到很困惑。
  有了完整的上下文信息,无障碍服务就能够为用户提供更加实用和有效的反馈。  对事件做出响应
  这部分比较简单,通常就是确定无障碍事件的类型,并从触发此事件的视图节点中提取有用的文字描述,以文字转语音或振动的形式反馈给用户。  为用户执行操作
  无障碍服务可以代替用户执行的操作,经过数个系统版本的迭代扩展,目前已经支持多达数十种,包括但不限于点击、长按、复制、粘贴、滚动、翻页等。
  可以说,基本上,只要是Android平台上的标准UI控件(如TextView、RecyclerView、ViewPager等)内可支持的操作,都有对应的无障碍操作类型提供。
  并且,这类操作不仅可以在应用内进行,还可以在系统全局进行,比如回到主屏幕、按"返回"按钮,以及打开最近使用的应用列表等,因此可以极大地简化用户与应用、系统之间的互动。
  所以,说了这么多,「李跳跳」的「跳过开屏广告」功能到底是怎么实现的呢?  跳过开屏广告是怎么实现的?
  其实,如果你能看到这里,此刻你的脑海里应该就已经有了大致的思路,下面,就让我们用代码来实际还原一下:  创建无障碍服务
  首先我们要做的,就是创建一个扩展自 AccessibilityService 的类。 class MyAccessibilityService : AccessibilityService() { ... }
  由于无障碍服务本质上就是一个服务( Service ),因此必须在AndroidManife应用清单文件中包含特定的声明。
  在service元素的声明中,我们还必须添加一个intent过滤器,告诉系统这是一个无障碍服务。
  此外,我们还需要添加  BIND_ACCESSIBILITY_SERVICE  权限,以确保只有系统才可以绑定到它。                                        配置无障碍服务
  配置的目的是为了告诉系统,我们的无障碍服务运行的方式和时机、响应的事件类型、是针对特定的应用还是所有的应用以及采用的反馈类型等。
  配置的方式有代码形式和XML文件形式两种,这里我们主要介绍后者。
  首先,我们需要在res/xml目录下创建一个名为serviceconfig(命名可随意)的XML文件,其中的每一个键值对即表示一个配置选项,具体每一个配置选项的含义我们留到后面再介绍:  <?xml version="1.0" encoding="utf-8"?>
  随后,为了确保引用到该文件,我们需要在上面的服务声明中添加一个指向该XML文件的标记:        ...        注册无障碍事件
  这一步的作用就是确立我们的无障碍服务要处理的事件来自哪个应用的哪些事件类型,与此关联的几个配置选项就是:  android:packageNames (软件包名称):指定可接收的无障碍事件的应用来源。如果有多个应用需要指定,可用逗号进行分隔。而如果未指定,则默认接收来自所有应用的无障碍事件。 android:accessibilityEventTypes (事件类型):指定可接收的无障碍事件的事件类型。例如,accessibilityEventTypes="typeViewClicked|typeViewFocused"就表示可接收点击和获取焦点这两种事件类型,多个事件类型之间使用|进行分隔,typeAllMask则表示接收所有类型的事件。
  此外,为了保证能获取无障碍事件来源控件的视图层次结构(即获取其父视图和子视图),我们还需添加 canRetrieveWindowContent 属性,并将其设为true,以请求相应的访问权限。 申请无障碍服务权限
  只有当系统绑定到我们定义的无障碍服务,我们的服务才能正常运行起来,为此,我们需要跳转到系统的无障碍设置界面,开启我们安装的无障碍服务,代码如下:  startActivity(Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS))
  以华为P30 pro为例,以上代码所跳转到的界面,对应的操作路径是「设置-辅助功能-无障碍」,随后,我们就可以从已安装的服务里找到我们自己的服务,然后点击开启按钮,我们的服务就会运行起来。
  设置-辅助功能-无障碍.png  重载无障碍服务方法
  除了常规的Service类方法外,无障碍服务还额外提供了2个必须重载的方法,分别是:  onAccessibilityEvent() :当系统检测到与我们前面的配置选项相匹配的事件时,就会回调此方法,事件将以AccessibilityEvent 类对象的形式提供。随后我们就可以解析该对象,并执行相应的处理。这个方法可能会在服务的整个生命周期内被调用多次。 onInterrupt() :当系统要中断我们的服务正在提供的反馈时(通常是在控件焦点转移时),就会回调此方法。 获取事件详细信息
  开头我们就讲了,「李跳跳」跳过开屏广告实际上就2步实现:  检测「跳过」按钮的位置  自动完成「点击」的动作
  关于步骤1,我们要做的事情就是,在接收到无障碍事件后,使用 getSource() 从事件中检索出AccessibilityNodeInfo 对象, 通过AccessibilityNodeInfo 对象,我们可以浏览当前界面的视图层级结构,找到包含"跳过"字样文本的事件来源节点。
  至于步骤2就很简单了,直接调用 performAction(ACTION_CLICK) 为用户执行点击操作即可。
  完整代码如下:  class MyAccessibilityService : AccessibilityService() {      override fun onAccessibilityEvent(event: AccessibilityEvent) {         val source = event.source ?: return         for (i in 0 until source.childCount) {             if (source.getChild(i)?.text?.contains("跳过") == true) {                 source.getChild(i).performAction(ACTION_CLICK)             }         }         source.recycle()     }      override fun onInterrupt() {     } } 效果演示
  可以看到,对比前一个未启用 跳过开屏广告 功能的网易云版本,后一个版本会在开屏广告显示的瞬间,就帮我们自动点击了跳过 按钮,以达到跳过开屏广告的效果。 还想说点什么
  好了,到这里我们就完成了一个"简易版"的 李跳跳 了,之所以说是"简易版",是因为现在的李跳跳 早已不限于跳过广告 这一主要功能了,但大体上还是基于无障碍 功能进行扩展的。
  这也让我不得不慨叹,能力是有限的,但创意可以是无限的。Android开发团队或许也从未想到,无障碍功能居然还可以用来做这么多事情。实践之后,我也不得不对 李跳跳 开发者的创意拍手叫绝。
  但另一方面,我也衍生出一种担忧,至于原因,显而易见, 无障碍功能在解锁了相应的权限之后,其所能掌握的对于手机的控制权是相当可怕的 。
  能读取屏幕内容,就可能窃取隐私;能操控用户行为,就可能违法犯罪。何况服务本身的特点就是在后台长时间运作,而不需要提供界面的。如果还允许这类应用在后台持续保活的话,真不敢想象它会在你意想不到的时候做出什么出格的事情。
  当然我相信「李跳跳」的开发者的初心是纯粹的,毕竟多省下几秒看无聊广告的时间,就多几秒可以去做更有意义的事情,我只是表达对这种过度权力本身的担忧,毕竟就像罗翔老师说的:
  同作为开发者,我佩服「李跳跳」的创意,但我敬畏这种权力。  ❝
  少侠,请留步!若本文对你有所帮助或启发,还请:
  点赞,让更多的人能看到!
  收藏⭐️,好文值得反复品味!
  关注➕,不错过每一次更文!
  ===> 公众号:「星际码仔」
  你的支持是我继续创作的动力,感谢!

强芯注能新能源汽车产业,院士大咖齐聚南沙畅谈第三代半导体发展南方财经全媒体记者陈梦璇南沙报道新能源汽车光伏和智能电网等产业发展驱动迅猛,推动了对以碳化硅氮化镓为代表的第三代半导体材料和器件需求的井喷式增长。3月17日,由第三代半导体产业技术李嘉诚手里的摇钱树一年进账1490亿元,全球经营1。6万家店2023年3月消息李嘉诚家族旗下的长江实业集团及长江和记实业有限公司(长和)发布2022年业绩公告。以地产业务为主的长实集团录得营业收入563。41亿港元,同比减少9。27净利润2只比亚洲纪录慢0。03秒覃海洋男子100蛙爆发京报体育记者李远飞3月20日,2023年全国春季游泳锦标赛结束了第二比赛日的争夺。在晚间进行的男子100米蛙泳决赛中,上海名将覃海洋以58秒66夺得冠军。这个成绩仅比湖北名将闫子贝周二3月21日,这4个板块,开启主浪上升,值得收藏研究!明日周二3月21日,A股不管是涨还是跌,这4个板块都将迎来爆发性空间,开启主浪上升。值得收藏研究!1互联网顺网科技富春股份巨人网络姚记科技盛天网络三人行。首选姚记科技(均线多头,主Meme币会卷土重来吗?狗狗币SHIBLUNCFLOKI价格分析尽管最近加密货币市场处于复苏阶段,但主流的memecoins在过去两周显示出有限的增长。然而,由于外部消息对这些加密货币没有表现出太大的影响,感兴趣的交易者可以依靠个人的价格行为来股价阴跌一个月!胶粘剂龙头回天新材果然暴雷创始人被刑拘果然上市公司有任何事情,股价必然提前反应。自2022年6月16日股价突破4年新高26。04元后,回天新材股价持续走弱,截至3月17日收盘累计跌幅37,远大于同期创业板指10的跌幅,科普有机奶的前世今生老爸抽检看不见的安全对消费者同样重要中国网财经3月20日讯(记者秦潇)民以食为天,食以安为先,随着生活水平的不断改善和健康意识的提升,乳制品已成为人们餐桌上必不可缺的部分。根据国家统计局数据,从消费端来看,中国乳制品中国对韩立场不变,韩国取消入境限制后,中方暂不开放赴韩团体游3月13日,我国政府公布了第二批团体出境游的目的地名单。韩国政府看见两批名单都没有韩国的名字,就感到非常失望。因为在韩国人的心中,韩国貌似非常受中国人的喜欢,在疫情之前,韩国是中国中国拉斯维加斯澳门五一假期即将来临,计划出游的朋友们都在提早规划出现目的地,今天谈谈出游澳门需要注意哪些方面(现身说法)第一点,兵马未动粮草先行,对了,就是旅行经费。一定注意随身过关港币是不能超过2钠离子电池落地电动两轮车雅迪预计钠电装车份额将达2030经济观察网记者濮振宇继新能源汽车后,电动两轮车也开始采用钠离子电池。3月17日,雅迪科技集团与华宇新能源科技公司联合宣布,成立现阶段以钠离子电池为主要业务的新公司,并发布华宇第一代车市一线东风雪铁龙C6直降9万,雅阁凯美瑞降价多少车市寒流叠加价格战,正挤压众多车企的生存和发展空间。在全国各地铺天盖地的降价消息中,越来越多汽车厂商不再为跟进或不跟而纠结,身不由己被卷入3月残酷的价格战中。凯美瑞雅阁降至10万元
涨涨涨!国内快递业涨价潮起,昔日低价搅局者极兔何去何从点蓝字关注,不迷路经历了一轮价格战的洗礼,国内快递业开始回归理性竞争,单票价格上涨成为2022年快递行业发展的主旋律。根据国内头部快递公司三通一达(申通圆通中通韵达)公布的半年数据荆楚门户荆门,大美漳河,飞行圣地,湖北省首个航空主题乐园荆门作为荆楚门户,先民在这里披荆斩棘,开疆拓土,建立楚国,荆楚大地的文明史由此拉开帷幕。荆门园博园中国农谷荆门自古就是鱼米之乡,是全国重要的商品粮商品油生产基地。以优质稻米高油酸油荣昌生物房健民认准创新药赛道,开辟健康产业蓝海来源人民网原创稿编者按民营经济是我国社会主义市场经济的重要组成部分,为国民经济发展作出了突出贡献,在稳定增长促进创新增加就业改善民生等方面发挥着重要作用。10年间,我国民营企业数量每个脆弱的生命,都在告诉我们要健康地活着只有经历过生与死的离别,才能体会到生死离别时的悲痛。天堂虽没有病痛,但和世间相距太远,和那里的人永远见不上面,还要独自忍受肝肠寸断的思念。见惯了团聚的幸福,体会过幸福的团聚,也就不10。1放假,妈妈做饭不用愁!一周食谱已备好,天天照着做,顿顿吃光盘国家推广的午餐工程,着实解决了孩子中午吃啥?妈妈不用操心做啥的难题,不过明天国庆七天乐就来了,孩子们纷纷回家,做饭又成了一大难题。不过别担心,10。1放假妈妈做法不用愁!一周食谱已2。0T发动机湿式双离合,定位紧凑型轿车,体验吉利星瑞如何选择一款适合家庭使用的汽车?相信这个问题困扰着许多人,家庭用车考虑的方面也比较多,今天小编给大家带来的这款车,定位紧凑型车,官方指导价格为11。3714。57万元。下面,笔者以三胎开放,不必焦虑,教您如何做健康妈妈我特别怕我们有些女性朋友说这个分娩太可怕了,尤其经阴道分娩,我就不要去生孩子了。现在国家政策也是很鼓励我们生3胎,这个我们是有义务的,生孩子不只是为自己,还是为国家做贡献的,如果孩喝水好还是喝茶更健康呢?水和茶是生活中大家都经常喝的,经常喝水与长期喝茶的人相比,哪类人会更健康一些呢?成年人的身体中水分大约占体重的70左右,如果是老年人,水分占的比例偏低,可能只有60左右,而婴幼儿新国庆出游这才是云南的正确玩法,跟随熙康云舍圆了滇南梦当秋天的信号一多起来就想去山野里走一走那种对自然的渴望,也愈发强烈去吸一口大山里的空气,去拾一块林中的化石当你离远方近一点,再近一点内心的声音倾泻出来,山川也朝你奔涌而来对旅行,对金色热线国庆将至!请收下这份来自云南省文化和旅游厅的提醒9月29日,云南省文化和旅游厅党组成员副厅长杨澄率队做客金色热线直播节目。在节目中,云南省文化和旅游厅综合执法监督局局长马坤就网友关心的十一黄金周如何保障游客合法权益和安全等问题进丽江关注幽灵之花现身丽江!为国家近危级珍稀植物早前发布丽江热线APP近日,有网友在玉龙县巨甸镇金河村委会发现了国家近危级珍稀植物水晶兰。据了解,玉龙县巨甸镇金河村委会白连一组村民童万军在进山拾菌子时,无意中发现了一簇纯白的小花