【问题标题】:Trying to catch the Volume onKeyLongPress() not working试图捕捉音量 onKeyLongPress() 不起作用
【发布时间】:2011-11-21 13:16:56
【问题描述】:

我正在尝试使用以下代码让我的应用对长按音量下的按键做出反应:

public boolean onKeyLongPress(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
        Log.w("myApp", "LONG PRESS");
    }
    return super.onKeyLongPress(keyCode, event);
}

但是,它只会发送大量onKeyPress() 事件以降低音量,而onKeyLongPress() 永远不会被调用。我的意图是让音量上下“短”按单独,让我的应用对音量长按做出不同的反应。
谁能指出我遗漏了什么?

【问题讨论】:

    标签: android onkeypress


    【解决方案1】:

    你快到了。您需要在 onKeyPress 处理程序中检测到相同的键事件并开始跟踪它,以便长按可以工作。这是您需要的代码:

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
            event.startTracking();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
    

    【讨论】:

    • 知道如何捕捉这个关键事件,进一步进入 Android Volume Manager 并更改音频吗?
    • @Radu:未测试但是:“返回真”怎么样?在你的长按回调?应防止传播。但同样,不确定这是否真的有效。
    • 谢谢!为我工作。
    猜你喜欢
    • 2018-03-25
    • 1970-01-01
    • 2016-02-04
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多