触控反馈的实现.doc_第1页
触控反馈的实现.doc_第2页
触控反馈的实现.doc_第3页
触控反馈的实现.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

android触控反馈的实现芯片:RK28081框架结构Android触控反馈的实现与背光的实现方法相似,分为触控驱动、硬件抽象层、框架层及API接口,应用层系统调用。其结构如下图所示:由于framework层对硬件驱动进行了封装,应用程序以API调用的方式对硬件进行控制,应用程序只需 import android.os.Vibrator即可调用frameworkf封装的API函数实现触控反馈的功能。API函数如下:1 public void vibrate(long milliseconds)2 public void vibrate(long pattern, int repeat) 3 public void cancel()函数1带有一个参数milliseconds,该参数控制触控触发的时间,但是是毫秒,一般设为1000;函数2带有2个参数,它能多次驱动马达,参数pattern以数组的方式传入每次触发时间,repeat为触发的次数,repeat=-1时,其功 能与函数1相似,只驱动马达一次,当repeat不为-1时,应该满足pattern.length repeat ;函数3 取消操作。应用程调用方式,在onClick事件触发时,在需要添加触控的相应的控件上添加:vibrate()函数即可。importandroid.os.Vibrator;private VibratormVibrator;privatesynchronized void vibrate() if (mVibrator = null) mVibrator = new Vibrator(); mVibrator.vibrate(1000); Framework层主要是2个文件,向上提供API调用的vibrator.java文件,以及提供服务HardwareService.java文件。vibrator.java位于:frameworksbasecorejavaandroidos中HardwareService.java :frameworksbaseservicesjavacomandroidserver中vibrator.java文件通过Binder 实现跨进程和跨语言的通信;ServiceMangager完成服务的注册和获取等操作,SweviceManger实际上是android的API接 口,提供系统服务,在这里是完成HardwareService注册和提供该服务。 HardwareService.java 封装了触控反馈、背光等硬件操作,实现触控反馈的函数如下:public void vibrate(long milliseconds, IBinder token) publicvoid vibratePattern(long pattern, int repeat, IBinder token) public void cancelVibrate(IBinder token) 本地框架主要包括两个文件:vibrator.c 实现kenerl与用户态的通信;com_android_server_HardwareService对vibrator.c的函数进行封装,提供给HardwareService.java调用。com_android_server_HardwareService.cpp位于:frameworksbaseservicesjni中vibrator.c 位于:hardwarelibhardware_legacyvibratornative static void vibratorOn(long milliseconds);native staticvoid vibratorOff();这两个函数位于com_android_server_HardwareService.cpp中,封装vibrator.c中 vibrator_on(int timeout_ms)和vibrator_off()函数,提供给HardwareService.java调用。linux 驱动层实现触控驱动,主要文件为timed_gpio.c。采用中断方式对IO进行拉高拉低操作,实现马达驱动。由于rk2808中马达接在扩展I2C 上,需要修改控制的IO口,背光sleep时会触发timed_gpio,在timed_gpio中过滤该事件。在linux中主要修改的文件有:board-rk28:位于archarmmach-rockchip 添加timed_gpio设备rk28_devices :位于archarmmach-rockchip 添加timed_gpio设备timed_gpio:位于driversandroid 修改控制IO、BUGKconfig:位于driversandroid 删除timed_gpio 依赖项Makefile:位于driversandroid 添

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论