210开发板吧 关注:77贴子:371
  • 4回复贴,共1

添加210开发板上作唤醒功能的自定义按键——详细步骤解析

只看楼主收藏回复

最近需要做个唤醒功能,当按键的时候android系统唤醒并点亮屏,在长按键中,系统不能在进入睡眠。
驱动方面: 1:在平台设备文件中添加 一个按键,定义为唤醒源 \arch\arm\mach-s5pv210

2:添加驱动\kernel-v.20120620\drivers\input\keyboard\s3c-gpio-keys.c

//申请中断为上/下沿出发方式。

驱动按键添加完成,内核能唤醒,但是android系统屏并不会点亮,所以需要修改源码,让系统服务获取到此按键并作一些处理。 1:首先看下键值表:\out\target\product\smdkv210\system\usr\keylayout


1楼2013-03-25 10:30回复

    驱动按键添加完成,内核能唤醒,但是android系统屏并不会点亮,所以需要修改源码,让系统服务获取到此按键并作一些处理。 1:首先看下键值表:\out\target\product\smdkv210\system\usr\keylayout

    第一列:key
    第二列: SCANCODE是一个整数,是驱动里面定义的,在文件./kernel/include/linux/input.h
    第三列: KEYCODE 是一个字串,定义在你描述的布局文件frameworks/base/include/ui/KeycodeLabels.h
    另外可以设置相关的FLAGS:
    SHIFT: 当按下,自动加上SHIFT键值
    ALT:当按下,自动加上ALT
    CAPS:当按下,自动带上CAPS大写
    WAKE:当按下,当设备进入睡眠的时候,按下这个键将唤醒,而且发送消息给应用层。
    WAKE_DROPPED:当按下,且设备正处于睡眠,设备被唤醒,但是不发送消息给应用层。
    2:./frameworks/base/include/ui/keycodeLabels.h



    2楼2013-03-25 10:31
    回复
      广告
      立即查看

      通过以上的更改,新的键值就添加上去了,由于更改了 KeyEvent,影响到了API, 所以需要make update-api 这样系统就会获取到这个NULL按键,并能够点亮屏幕了。如果对新键值进行处理,可以通过获取相应的keycode,对它进行处理;对于按键事件的处理一般如下文件中
      frameworks/policies/base/phone/com/android/internal/policy/impl/PhoneWindowManager.java interceptKeyBeforeQueueing函数中处理。

      结束啦,希望有帮助哈~


      3楼2013-03-25 10:32
      回复
        210开发板这样的技术文章 说好的操作呢


        4楼2013-03-26 13:33
        回复
          楼主辛苦~顶一下,说好的十五个字呢~恩,够了~么有错~偶要经验~~


          5楼2013-03-27 17:36
          回复