java - 单击音量键时禁用声音

标签 java android android-studio key volume

在我的应用程序中,我覆盖音量增大音量减小键。问题是,当用户单击这两个键之一时,就会播放声音。我想以某种方式禁用/静音此声音。

这是我的代码 fragment :

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

    switch (keyCode) {

        case KeyEvent.KEYCODE_VOLUME_DOWN: {
            // do something when user click volume down key

            return true;
        }
        case KeyEvent.KEYCODE_VOLUME_UP: {
            // do something when user click volume up key

            return true;
        }

    }
    return super.onKeyDown(keyCode, event);
}

最佳答案

使用onKeyDown或onKeyUp仍然会发出默认的改变音量的声音。请改用dispatchKeyEvent。

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    int keyCode = event.getKeyCode();
    switch (keyCode) {
    case KeyEvent.KEYCODE_VOLUME_UP:
    case KeyEvent.KEYCODE_VOLUME_DOWN:
        return true;
    default:
        return super.dispatchKeyEvent(event);
    }
}

关于java - 单击音量键时禁用声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39646746/

相关文章:

JavaMail、IMAP、大量文件夹的性能

java - Spring Boot 优雅关机

java - 如何向 FCM(Firebase 云消息传递) token 的特定用户发送消息?

java - SecondActivity 未接收值 - Intent 相关

android - Android中如何与SIM卡进行APDU通信?

Android - ImageLoader 不会从 URL 重新检索图像

flutter - 如何在 android studio 的注释行中添加代码引用?

java - 使用 springform 时,jsp 页面出现 "equal symbol expected "问题

android - Rx-Java 集中式错误处理

Java方法调用顺序