Android Studio 辅助功能服务onKeyEvent

eit6fx6z  于 2022-11-16  发布在  Android
关注(0)|答案(1)|浏览(181)

我正在尝试将辅助功能服务中的所有声音设为静音,可以吗?
如果没有,我可以管理音量键吗?我目前正在使用onKeyEvent来获取所有音量键事件,它工作正常,但我希望在特定条件下禁用音量键,而在其他条件下启用它们。我未能实现这一点,因为它的行为方式很奇怪,不听我的条件,要么工作要么不工作。以下代码是我所得到的一个示例:

@Override
public boolean onKeyEvent(KeyEvent event) {

    int action = event.getAction();
    int keyCode = event.getKeyCode();
    if(CONDITION) {
        if (action == KeyEvent.ACTION_UP) {
            if (keyCode == KeyEvent.KEYCODE_VOLUME_UP || keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
                return false; // Volume key shouldn't work
            }
            return true; // execute key normally
        }
    }
    return true; // Volume key should work
}

在这种情况下,无论条件是什么,音量键都不起作用。如果我将其中一个返回值更改为return super.onKeyEvent(event),音量键就会突然一直起作用,尽管条件是:(我不知道该怎么做
请帮助,任何建议都会有帮助。

提前感谢!:)

9nvpjoqh

9nvpjoqh1#

嘿,问题是函数只消耗action = ACTION_UP,而它触发action_up和action_down,所以音量键总是工作,现在我已经改变了它消耗两个动作,它工作!代码是:

@Override
public boolean onKeyEvent(KeyEvent event) {

    int action = event.getAction();
    int keyCode = event.getKeyCode();
    if(CONDITION) {
        if (action == KeyEvent.ACTION_UP || action == KeyEvent.ACTION_DOWN) {
            if (keyCode == KeyEvent.KEYCODE_VOLUME_UP || keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
                return true; // Volume key don't work
            }
        }
    }
    return false; // Volume keys work
}

希望对任何人都有帮助

相关问题