Android Accessibility 辅助功能简单介绍

 更新时间:2016年11月22日 15:04:40   投稿:lqh  
这篇文章主要介绍了Android Accessibility 辅助功能简单介绍的相关资料,文字转语音,触觉反馈,手势操作,轨迹球和手柄操作,需要的朋友可以参考下

Android Accessibility 辅助功能

Accessibility:

许多Android使用者因为各种情况导致他们要以不同的方式与手机交互。

这包括了有些用户由于视力上,身体上,年龄上的问题致使他们不能看完整的屏幕或者使用触屏,也包括了无法很好接收到语音信息和提示的听力能力比较弱的用户。

Android提供了Accessibility功能和服务帮助这些用户更加简单地操作设备,包括文字转语音(这个不支持中文),触觉反馈,手势操作,轨迹球和手柄操作。

开发者可以利用这些服务使得程序更好用。

开发者可以搭建自己的Accessibility服务,这可以加强可用性,例如声音提示,物理反馈,和其他可选的操作模式。

Accessibility服务可以为所有的应用程,一组应用程序或单个应用程序提供这些增强功能。

官方文档中,有三篇文章介绍了Accessibility,这里只要是第三篇关于AccessibilityService的使用:

AccessibilityService使用很简单:

1. 新建一个类继承AccessibilityService,并在AndroidManifest文件里注册它:

<application> 
 <service android:name=".MyAccessibilityService" 
   android:label="@string/accessibility_service_label"> 
  <intent-filter> 
   <action android:name="android.accessibilityservice.AccessibilityService" /> 
  </intent-filter> 
 </service> 
 <uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE" /> 
</application> 

在<application>标签下添加继承了AccessibilityService的子类MyAccessibilityService,同时加入相应的权限。

2. 在子类MyAccessibilityService里实现几个重要的重载方法:

onServiceConnected() - 可选。系统会在成功连接上你的服务的时候调用这个方法,在这个方法里你可以做一下初始化工作,例如设备的声音震动管理,也可以调用setServiceInfo()进行配置工作。

onAccessibilityEvent() - 必须。通过这个函数可以接收系统发送来的AccessibilityEvent,接收来的AccessibilityEvent是经过过滤的,过滤是在配置工作时设置的。

onInterrupt() - 必须。这个在系统想要中断AccessibilityService返给的响应时会调用。在整个生命周期里会被调用多次。
onUnbind() - 可选。在系统将要关闭这个AccessibilityService会被调用。在这个方法中进行一些释放资源的工作。

3. 配置工作

一般在onServiceConnected()方法里进行。/Android-Sample/ApiDemos/com.example.android.apis.accessibility.ClockBackService 配置代码:

private void setServiceInfo(int feedbackType) { 
  AccessibilityServiceInfo info = new AccessibilityServiceInfo(); 
  // We are interested in all types of accessibility events. 
  info.eventTypes = AccessibilityEvent.TYPES_ALL_MASK; 
  // We want to provide specific type of feedback. 
  info.feedbackType = feedbackType; 
  // We want to receive events in a certain interval. 
  info.notificationTimeout = EVENT_NOTIFICATION_TIMEOUT_MILLIS; 
  // We want to receive accessibility events only from certain packages. 
  info.packageNames = PACKAGE_NAMES; 
  setServiceInfo(info); 
} 

需要建立一个AccessibilityServiceInfo对象,通过这个对象设置监听系统事件类型,服务的反馈类型(震动,语音,声音),事件时间间隔,你想要监听的包名(或者说是应用程序)。最后调用setServiceInfo()进行设置。

注:从Android4.0开始,开发者可以通过在AndroidManifest里添加<meta-data>标签,在标签里指出配置文件的位置,样例代码:

<service android:name=".MyAccessibilityService"> 
 ... 
 <meta-data 
  android:name="android.accessibilityservice" 
  android:resource="@xml/accessibility_service_config" /> 
</service> 

然后在/res/xml/accessibility_service_config.xml

<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android" 
  android:description="@string/accessibility_service_description" 
  android:packageNames="com.example.android.apis" 
  android:accessibilityEventTypes="typeAllMask" 
  android:accessibilityFlags="flagDefault" 
  android:accessibilityFeedbackType="feedbackSpoken" 
  android:notificationTimeout="100" 
  android:canRetrieveWindowContent="true" 
  android:settingsActivity="com.example.android.accessibility.ServiceSettingsActivity" 
/> 

更多详细的可以参见官方文档,或者可以看samples里的两个例子:ClockBackService, TaskBackService。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • Flutter 全局点击空白处隐藏键盘实战

    Flutter 全局点击空白处隐藏键盘实战

    这篇文章主要介绍了Flutter 全局点击空白处隐藏键盘实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Android自定义View仿腾讯TIM下拉刷新View

    Android自定义View仿腾讯TIM下拉刷新View

    这篇文章主要给大家介绍了关于Android自定义View仿腾讯TIM下拉刷新View的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • OpenGL ES正交投影实现方法(三)

    OpenGL ES正交投影实现方法(三)

    这篇文章主要为大家详细介绍了OpenGL ES正交投影的实现方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • Android中使用PagerSlidingTabStrip实现导航标题的示例

    Android中使用PagerSlidingTabStrip实现导航标题的示例

    本篇文章主要介绍了Android中使用PagerSlidingTabStrip实现导航标题的示例,具有一定的参考价值,有兴趣的可以了解一下。
    2017-01-01
  • Android实现消息提醒小红点效果

    Android实现消息提醒小红点效果

    这篇文章主要为大家详细介绍了Android实现消息提醒小红点效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • Android AOP框架AspectJ使用详解

    Android AOP框架AspectJ使用详解

    本篇文章主要介绍了Android AOP框架AspectJ使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • Android编程自定义View时添加自己的监听器示例

    Android编程自定义View时添加自己的监听器示例

    这篇文章主要介绍了Android编程自定义View时添加自己的监听器,涉及Android自定义view中监听器的添加、设置与使用相关操作技巧,需要的朋友可以参考下
    2018-01-01
  • Android自定义仿ios加载弹窗

    Android自定义仿ios加载弹窗

    这篇文章主要为大家详细介绍了Android自定义仿ios加载弹窗,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • Android采用消息推送实现类似微信视频接听

    Android采用消息推送实现类似微信视频接听

    这篇文章主要为大家详细介绍了Android采用消息推送实现类似微信视频接听,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • Android中EditText的drawableRight属性设置点击事件

    Android中EditText的drawableRight属性设置点击事件

    这篇文章主要介绍了Android中EditText的drawableRight属性的图片设置点击事件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10

最新评论