📜  什么是 Android 中的无障碍服务?

📅  最后修改于: 2022-05-13 01:58:44.902000             🧑  作者: Mango

什么是 Android 中的无障碍服务?

Android 框架提供了一项无障碍服务功能,该功能的设计方式提供了一种代表应用程序与用户进行通信的替代方式。残障用户可以在无障碍服务的帮助下使用 Android 设备和应用程序。这是一项长期运行的特权服务,它允许人们通过帮助他们处理手机上的信息来与设备进行有意义的通信。

Google 提供了一些无障碍服务,例如 Talkback(针对视障用户)、Voice Access(针对限制他们对设备控制的障碍的用户)等。但仅由 Google 提供的这些服务不可能为所有用户提供残疾。由于许多残障人士都有特殊要求,因此可以使用 Android 的无障碍 API,开发人员可以通过 Play 商店构建和提供无障碍服务。

无障碍服务如何运作?

用户打开辅助功能服务后,该服务将在后台持续运行,并在触发辅助功能事件时接收来自系统的回调。辅助功能事件指示用户界面状态的一些变化,例如,焦点已转移、按钮已被按下等。然后系统提供一个包含屏幕内容详细信息的辅助功能节点信息对象。此节点对象可用于执行多个操作。

Android 中的无障碍服务

生命周期

系统对无障碍服务的生命周期进行管理,符合标准的服务生命周期。启动无障碍服务的唯一方法是用户直接在系统设置中打开它。系统绑定服务后,会调用 Accessibility 服务的onServiceConnected()方法。想要执行一些绑定后设置的开发人员可以覆盖此方法。基本上, onServiceConnected()是用户通过系统设置打开服务时调用的第一个方法。该服务一直在后台运行,直到用户在设备设置中将其关闭或调用disableSelf()方法。

无障碍服务的开发需要扩展这个类并实现它的抽象方法。一旦服务启动,它就会独立工作,即即使您关闭主机应用程序或将其从最近的应用程序中删除或关闭设备的屏幕,服务也会在后台继续侦听回调。

您可能会好奇一个应用程序如何如此轻松地读取另一个应用程序的内容。通常,代表消费者做出决定。是的,您的担心是有道理的;应用程序不应轻易侵犯用户的隐私。但是对于使用无障碍服务的应用程序,它应该具有 Manifest 中提到的权限。并且与其他权限一样,此权限不能在运行时直接询问和授予。用户必须通过系统设置明确开启无障碍服务

总是有人质疑,当无障碍服务对安全和隐私造成威胁时,我们为什么要使用它们?

无障碍服务既是福也是祸。它具有广泛的功能,并增强了用户界面,以帮助残疾人或暂时无法与设备通信的人。尽管辅助功能服务应该只用于帮助残障用户,但许多应用程序实现此功能是为了让每个人都能轻松使用。例如,

  1. 正在开车的用户
  2. 一个人照顾一个年幼的孩子。
  3. 被分组或骚扰的人。
  4. 执行多任务处理
  5. 填写表格等等。