Android:如何从设备中隐藏音量调整栏?

8
有没有办法隐藏音量变化栏/通知(不管你怎么称呼它,顺便问一下,你称呼它什么名字?)?我在上方附上了一个截图。每次我调节音量时都会显示这个栏(至少在我的 Nexus 测试设备上是如此)。或者这是 Nexus 的特殊功能吗?
2个回答

20

这是在按下音量上/下按钮时出现的默认蜂窝后音量滑块。您无法将其隐藏在系统的每个屏幕中,但可以将其隐藏在您的活动中。 将以下内容添加到您想要隐藏它并手动更改音量的活动中。或者,如果您不想更改音量,只需在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);

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)
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接