Android:从设备隐藏音量更改栏?

lon*_*ngi 6 android android-layout android-audiomanager

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

关于音量变化的截图nexus

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

Yar*_*lyk 18

这是按下音量增大/减小按钮时出现的默认蜂窝后音量滑块.您无法在系统的每个屏幕中隐藏它,但您可以将其隐藏在您的活动中.将其添加到要隐藏它的活动并手动更改音量.或者,如果您不想更改音量,则可以在KeyEvent.KEYCODE_VOLUME_UP/DOWN情况下执行任何操作.记得回归真实,你消耗了这个事件.如果在那里返回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);
    }
}
Run Code Online (Sandbox Code Playgroud)

将AudioManager管理器检索为的位置

manager = (AudioManager) context
            .getSystemService(Context.AUDIO_SERVICE);
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢!这个答案救了我的一天;) (2认同)