黑屏下,系统休眠,音量键唤醒cpu,但是按键还没上报,系统又休眠。需要驱动加wake-lock。

解决方案 »

  1.   

    你能监听power键??能share一下吗??
      

  2.   

    那我这边做什么操作可以实现休眠时的vol键操作?改驱动可以吗?
      

  3.   

    唤醒通常会是以下的几种原因:
    1)来电:如果是来电,那么Modem会通过发送命令给rild来让rild通知WindowManager有来电响应,这样就会远程调用 PowerManagerService来写"on" 到 /sys/power/state 来执行late resume的设备,比如点亮屏幕等。
    2)用户按键:用户按键事件会送到WindowManager中,WindowManager会处理这些按键事件。按键分为几种情况,如果案件不是唤醒键(能够唤醒系统的按键) 那么WindowManager会主动放弃wakeLock来使系统进入再次休眠;如果按键是唤醒键,那么WindowManger就会调用 PowerManagerService中的接口来执行 Late Resume。Late Resume会依次唤醒前面调用了Early Suspend的设备. 在网上找到的,我试试改下WindowManager这一层
      

  4.   


    不知道你是从网上哪里找的。
    只改WindowManager这一层应该是做不到的,你引述的那两个原因,不是根本的,那两个的前提是CPU已经被唤醒工作了,不然程序根本就不会跑,那有什么软件能执行逻辑判断。
      

  5.   

    你说的没错...我抓log黑屏的时候根本就不走windowmanager!怎么才能让vol键唤醒CPU呢?我尝试跟一键亮屏的代码,没跟到
      

  6.   

    thl789回答是对的,这是休眠下是没有办法的,除非
    1、v+/v-能够唤醒cpu。
    2、你的应用不让系统休眠。
      

  7.   

    只能vol连接的是能唤醒CPU的引脚(查processor的spec),否则软件是没办法的