android - 在 sleep 状态下长按音量按钮(android)

标签 android button sleep

当手机处于 sleep 状态(屏幕关闭)时,我需要长按音量按钮,并且我知道以下代码:

@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) 
    {
        // to your stuff here
        return true;
    }
    return super.onKeyLongPress(keyCode, event);
}

没有帮助(它仅在主动 Intent 中有效

最佳答案

我也很好奇这个问题。 虽然这不一定是答案,但我已经对服务(为了捕捉我猜测的音量按下)和广播接收器(onReceive()将收到 ACTION_SCREEN_OFF 的 Intent 并可能为屏幕关闭设置一个标志)进行了一些研究。我的想法是在屏幕关闭时启动服务并在屏幕打开时杀死它,但我不知道如何加入onKeyLongPress和服务。

我看到发生的顺序是这样的:屏幕关闭 -> BroadcastReceiver 接收此命令并启动服务以监视音量按下 -> 接收音量按下并执行逻辑 -> 如果屏幕打开则终止服务。

我发现一个网站显然可以处理屏幕关闭/打开,并且有一个 Activity 和服务的示例,但我还无法将一些东西放在一起: http://thinkandroid.wordpress.com/2010/01/24/handling-screen-off-and-screen-on-intents/

使用服务时我担心的一件事是电池生命周期和处理时间,但这将在以后进行测试。我希望能够通过在屏幕打开时终止服务来缓解这种情况。随着我的进步,我会尽力更新此条目。

祝你好运!

关于android - 在 sleep 状态下长按音量按钮(android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5973933/

相关文章:

android - RecyclerView 中的 CheckBox 不断检查不同的项目

android - 在android中解码以utf-8格式编码的字符串

javascript - 表单上的按钮 vs 链接 vs 输入类型 ="submit"

jquery - 单击按钮更改所选选项

ios - SKAction 仅在 sleep 后或运行调试器时运行

python - 如何在一定时间内运行代码?

android - android 和 oracle 数据库之间连接的最佳方式是什么?

android - TabHost 中的 Horizo​​ntalScrollView 在末尾添加额外的空间

c# - 如何在 C# 4.0 WPF webbrowser 应用程序上单击按钮或提交表单或单击 url 或单击图像

c++ - std::this_thread::sleep_for sleep 时间过长