Android Accessibility(辅助功能) 学习
来源:互联网 发布:淘宝开店实名认证怎么弄 编辑:程序博客网 时间:2024/04/28 18:24
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>
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>
- <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(辅助功能) 学习
- Android Accessibility(辅助功能) 学习
- Android Accessibility(辅助功能) 学习
- Android Accessibility(辅助功能) 学习
- Android Accessibility(辅助功能) 学习
- Android学习日记(yzy): Accessibility辅助功能
- Android辅助功能(Accessibility)简介
- Android Accessibility(辅助功能) 安全相关问题
- Android Accessibility(辅助功能) --实现Android应用自动安装、卸载
- Android Accessibility(辅助功能) --实现Android应用自动安装、卸载
- Android Accessibility(辅助功能) --实现Android应用自动安装、卸载
- Android Accessibility(辅助功能) --实现Android应用自动安装、卸载 .
- Android辅助功能 Accessibility Services基本用法笔记
- iOS辅助功能Accessibility浅析
- Accessibility辅助功能的使用
- Accessibility 辅助功能 自动下载
- Accessibility(辅助功能、易用性服务)
- android启动各种系统服务
- 安装nodejs
- hdu 2767 Proving Equivalences
- 图片裁剪预览上传
- 图像纹理识别与检索
- Android Accessibility(辅助功能) 学习
- MySQL常用的HINT
- Android 高仿微信6.0主界面 带你玩转切换图标变色
- Cheapest Palindrome字符串回文dp(插入看做删除(等价))
- android sqlite相关
- respondsToSelector的相关使用
- Unable to execute dex: Multiple dex files define Lcom/jess/ui/ScrollBarDrawa
- hdu 5171-GTY's birthday gift(矩阵快速幂)
- 【Linux笔记】如何利用logrotate工具自动切分滚动中的日志文件