Android Accessibility 辅助功能简单介绍

Android Accessibility 辅助功能简单介绍,第1张

概述AndroidAccessibility辅助功能Accessibility:许多Android使用者因为各种情况导致他们要以不同的方式与手机交互。

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。

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

总结

以上是内存溢出为你收集整理的Android Accessibility 辅助功能简单介绍全部内容,希望文章能够帮你解决Android Accessibility 辅助功能简单介绍所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1147637.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存