Step 19. EventHub.openPlatformInput

这个函数定义在frameworks/base/libs/ui/EventHub.cpp文件中:

  1. boolEventHub::openPlatformInput(void)
  2. {
  3. ......
  4. res=scanDir(device_path);
  5. if(res<0){
  6. LOGE("scandirfailedfor%s\n",device_path);
  7. }
  8. returntrue;
  9. }

这个函数主要是扫描device_path目录下的设备文件,然后打开它们,这里的变量device_path定义在frameworks/base/libs/ui/EventHub.cpp文件开始的地方:

  1. staticconstchar*device_path="/dev/input";

在设备目录/dev/input中,一般有三个设备文件存在,分别是event0、mice和mouse0设备文件,其中,键盘事件就包含在event0设备文件中了。 Step 20.EventHub.scanDir

这个函数定义在frameworks/base/libs/ui/EventHub.cpp文件中:

  1. intEventHub::scanDir(constchar*dirname)
  2. {
  3. chardevname[PATH_MAX];
  4. char*filename;
  5. DIR*dir;
  6. structdirent*de;
  7. dir=opendir(dirname);
  8. if(dir==NULL)
  9. return-1;
  10. strcpy(devname,dirname);
  11. filename=devname+strlen(devname);
  12. *filename++='/';
  13. while((de=readdir(dir))){
  14. if(de->d_name[0]=='.'&&
  15. (de->d_name[1]=='\0'||
  16. (de->d_name[1]=='.'&&de->d_name[2]=='\0')))
  17. continue;
  18. strcpy(filename,de->d_name);
  19. openDevice(devname);
  20. }
  21. closedir(dir);
  22. return0;
  23. }

根据上面一步的分析,这个函数主要就是调用openDevice函数来分别打开/dev/input/event0、/dev/input/mice和/dev/input/mouse0三个设备文件了。

更多相关文章

  1. Android设备电量监控
  2. Android Studio 指定签名证书文件
  3. android文件管理器--文件操作
  4. android中Bitmap图像处理 修改图片大小以及保存时的文件大小
  5. Android 读取配置文件的内容
  6. 文件上传
  7. android文件上传到服务器
  8. wzplayer for android V1.5.3 (新增YUV文件播放)

随机推荐

  1. 分享一个整理了很多Android开发工具类的
  2. java中Arraylist复制方法
  3. 单元测试
  4. android 实时获取系统log
  5. 清除Mac中Android studio的配置文件
  6. android简单网页浏览器的开发
  7. 关于.android 文件夹的移动问题
  8. Android 学习笔记--android――Activity
  9. Java JDK1.6 API 帮助文档和Android API
  10. Android 线程池原理及使用