【问题标题】:Hardware buttons handling in android while deep sleep深度睡眠时在android中处理硬件按钮
【发布时间】:2013-09-12 19:01:27
【问题描述】:

所以我的主要问题是: 如果手机进入睡眠状态几分钟,则无法开始 mp3 播放。 当手机进入睡眠状态几分钟后,有 90% 的可能性是硬件按钮都不起作用,只有电源按钮起作用。 无法理解为什么电源按钮总是工作而其他按钮只有 10%。当我疯狂点击 5 秒时,它通常会注册。 如果手机处于唤醒状态,按钮可以正常工作。

blade_keypad.kl
key 158   BACK              WAKE_DROPPED
key 139   MENU              WAKE_DROPPED
key 102   HOME              WAKE

key 115   VOLUME_UP         WAKE
key 114   VOLUME_DOWN       WAKE
key 116   POWER             WAKE
key 142   POWER             WAKE

key 226   HEADSETHOOK   WAKE

不确定是内核问题还是安卓问题。 使用中兴刀片 cm-10.1-20130724-KonstaKANG-blade 。 如何在深度睡眠时测试按下的按钮?在想也许你可以启用调试选项,以便将按键添加到 locgat。但是怎么做? 因此,如果这有效,那么它是一个 android 错误。女巫程序将按键事件广播给其他人?我得看看那个。 可能按钮不会唤醒手机,但为什么电源按钮会唤醒它?为什么不一样?

编辑: 好吧,我做了一些阅读......深度睡眠时没有任何运行导致处理器完全停止。区域唤醒cpu的硬件按钮购买硬件irq?或者它只是查询它?也许只是电源按钮有一个 irq 其他按钮被查询?

【问题讨论】:

  • @CommonsWare 你能看看我的问题吗? :D thx :P
  • 更新:我可以通过按住耳机按钮 6 秒松开并单击来从深度睡眠开始音频。后退菜单和主页不会以这种方式唤醒手机......有什么理论吗?
  • 更新 2:更改密钥 226 MEDIA_PLAY_PAUSE WAKE 现在可以正常工作。没有 WAKE 它可以工作,但电源按钮在深度睡眠中不起作用。奇怪的。也许是 HEADSETHOOK 事件的东边锁屏应用程序。有什么想法吗?
  • 更新 3:废话有一个“taos”内核唤醒锁让手机一直保持清醒,所以 MEDIA_PLAY_PAUSE 不起作用:S

标签: android button event-handling


【解决方案1】:

我的 xperia 的 stock 4.0.3 有这个问题。试图找到解决方案,但没有运气:(。所以我在 system/usr/keylayout 文件夹中的所有 *.kl 文件中搜索“HEADSETHOOK”关键字,最后通过将“WAKE”添加到“key 226 HEADSETHOOK”来解决该问题在 Generic.kl 中,所以它变成了“key 226 HEADSETHOOK WAKE”。之后我就不那么讨厌我的手机了:))

【讨论】:

  • 好吧,我确实尝试注释掉 Blade_keypad.kl 中的按钮并在 Generic.kl 中写入 WAKE,结果没有任何按钮唤醒手机,甚至电源按钮 :P。如果我长按按钮,MEDIA_PLAY_PAUSE 更改将起作用。但是现在我不能用耳机按钮接听电话了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-02
  • 2014-08-07
  • 2017-09-29
  • 1970-01-01
相关资源
最近更新 更多