Android.Accessibility包之AccessiblityService类

accessibility service概念

“信息无障碍”起源于西方发达国家,译自Accessibility,指任何人在任何情况下都能平等、方便、无障碍地获取信息并利用信息。在Android里,accessiblity service的目的主要用来协助有身体缺陷的用户使用android设备和应用。

Android有自带的accessibility功能,如talkback。但其作用域只在系统自带的软件。同时,开发者也可以通过继承AccessiblityService类为自己的应用自定义accessibility功能。

运行机制

accessiblity service在后台运行,并由用户的行为产生的AccessibilityEvents触发service的回调方法。这些AccessibilityEvents可以是视图焦点变化、按钮被点击和界面滚动等。

生命周期

  • 启动:
    当带有accessiblity service的应用在Android设备安装后,可通过设备里设置-->无障碍服务 为应用开启服务。开后,Service的onCreate(),onServiceConnection()的方法会被先后调用。开发者可在这些方法进行一些初始化动作。
  • 运行
    服务启动后,用户行为触发的AccessibilityEvents会回调服务的onAccessibilityEvent(AccessibilityEvent event) 的方法。
  • 结束
    当用户通过设备里设置-->无障碍服务 为应用关闭服务后,服务便终止。通过AccessiblityService的disableSelf()方法也可以终止服务.

声明与配置

  • 声明
    AccessiblityService需要在AndroidManifest.xml中进行声明,一是通过BIND_ACCESSIBILITY_SERVICE让系统识别出这是个无障碍服务,二是为了声明该服务用于处理的Intent类型。
 
     
         
     
     . . .
 
  • 配置
    配置的目的主要是设置该accessibilityservice用于哪个应用、处理哪种事件和获取事件的时间间隔等。
    配置有两种方式,一是通过XML文件配置,如:
 
     
         
     
     
 

二是通过代码setServiceInfo(AccessibilityServiceInfo)配置。

你可能感兴趣的:(Android.Accessibility包之AccessiblityService类)