1

我想禁用侧面音量按钮,因此控制音量的唯一方法是通过我的 android 应用程序中的专用活动。通过添加以下代码,我设法为我的所有活动禁用它:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    Log.d(TAG, "onKeyDown = " + keyCode);
    if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
        return true;
        }
    if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
        return true;
    }
    return super.onKeyDown(keyCode, event);

}

但我不知道如何为我从我的应用程序启动的活动禁用它(例如我启动图库应用程序)!

我知道“Volume Locker”应用程序可能会做类似的事情。

4

1 回答 1

3

在公共 API 中不可能抑制您自己的活动之外的关键事件,如果有一个应用程序已经设法做到这一点,那么他们正在做的事情将被平台设计者认为是恶意的,并且会在某个时候得到修复。

根据对该应用程序的描述(注意:我从未亲自使用过)

防止意外更改您的音量设置,立即安装 Volume Locker。此应用程序通过托盘通知或弹出窗口确认您所做的更改,有助于防止意外的音量更改。如果您不批准更改,卷将在设定的秒数内重置...通过将超时设置为“即时”,锁定的卷将立即恢复而不会提示。

我怀疑这实际上是在使用与此答案中的技术类似的技术来监听音量按钮,并立即恢复所做的任何更改(ish)。这会让用户觉得按键好像什么也没做,但实际上发生的事情是音量改变了,然后很快又变回来了。

于 2012-08-09T03:01:02.513 回答