有没有办法隐藏音量变化栏/通知(不管你怎么称呼它,顺便问一下,你称呼它什么名字?)?我在上方附上了一个截图。每次我调节音量时都会显示这个栏(至少在我的 Nexus 测试设备上是如此)。或者这是 Nexus 的特殊功能吗?
这是在按下音量上/下按钮时出现的默认蜂窝后音量滑块。您无法将其隐藏在系统的每个屏幕中,但可以将其隐藏在您的活动中。 将以下内容添加到您想要隐藏它并手动更改音量的活动中。或者,如果您不想更改音量,只需在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);
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)
}
}