8

有没有办法隐藏音量更改栏/通知(但是你可以称之为..btw。你怎么称呼它?)?

关于音量变化的屏幕截图

我附上了上面的截图。每次我改变音量时都会显示这个栏(至少在我的 nexus 测试设备上)。或者这是一个特殊的关系?

4

2 回答 2

19

这是默认的蜂窝后音量滑块,当您按下音量增大/减小按钮时会出现。您无法将其隐藏在系统的每个屏幕中,但您可以将其隐藏在您的活动中。将此添加到要隐藏它并手动更改音量的活动中。或者,如果您不想更改音量,则可以在 KeyEvent.KEYCODE_VOLUME_UP / DOWN 的情况下什么也不做。请记住返回 true 表示您消费了该事件。如果您在此处返回 false ,则在您的代码之后触发默认音量行为时,您将获得双重效果。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    switch (event.getKeyCode()) {
        case KeyEvent.KEYCODE_VOLUME_UP:
            manager.adjustStreamVolume(AudioManager.STREAM_MUSIC,
                    AudioManager.ADJUST_RAISE,
                    AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
            return true;
        case KeyEvent.KEYCODE_VOLUME_DOWN:
            manager.adjustStreamVolume(AudioManager.STREAM_MUSIC,
                    AudioManager.ADJUST_LOWER,
                    AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
            return true;

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

AudioManager 管理器在哪里被检索为

manager = (AudioManager) context
            .getSystemService(Context.AUDIO_SERVICE);
于 2013-01-28T13:41:54.603 回答
0

用于自定义处理/忽略的 Kotlin 版本:

override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
    return when(event?.keyCode){
        KeyEvent.KEYCODE_VOLUME_DOWN->{
            true //Do what you want or just return here
        }
        KeyEvent.KEYCODE_VOLUME_UP->{
            true//Do what you want or just return here
        }
        else->super.onKeyDown(keyCode, event)
    }
}
于 2021-04-18T17:48:42.097 回答