我正在试着用AudioManager增加音量。
但它显示本地Android音量UI(音量Seekbar) toast.我想禁用它。我知道这在使用Key Event的活动中是可能的,但我想通过服务来做到这一点。如何禁用吐司?以下是祝酒词的截图:

发布于 2012-08-29 02:51:29
AudioManager-class提供了以下方法来调整某些流的音量:
adjustVolume(int, int)adjustStreamVolume(int, int, int)adjustSuggestedStreamVolume(int, int, int)setStreamVolume(int, int, int)所有这些方法都将flag-parameter作为其最后一个参数。您感兴趣的标志是FLAG_SHOW_UI,它:
显示包含当前卷的吐司。
因此,为了去掉Toast,不提供此标志(或int- 1),而是提供所有其他标志(如果需要)或仅提供0
AudioManager manager = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE);
manager.adjustVolume(AudioManager.ADJUST_RAISE, 0);上面的代码片段适用于Android 4.0.4 (摩托罗拉Xoom)和Android 2.3.5 (HTC Desire HD)。
发布于 2013-11-15 18:58:59
我知道现在有点晚了,但我想我已经设法用这个隐藏了音量吐司:
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
switch(keyCode) {
case KeyEvent.KEYCODE_VOLUME_DOWN:
//volumeDown();
return true;
case KeyEvent.KEYCODE_VOLUME_UP:
//volumeUp();
return true;
}
return super.onKeyUp(keyCode, event);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch(keyCode) {
case KeyEvent.KEYCODE_VOLUME_DOWN:
volumeDown();
return true;
case KeyEvent.KEYCODE_VOLUME_UP:
volumeUp();
return true;
}
return super.onKeyDown(keyCode, event);
}
private void volumeUp(){
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, SOME_RANDOM_VALUE, AudioManager.FLAG_VIBRATE);
}在onKeyUp和onKeyDown中只使用一个方法并不妨碍显示吐司(即使在使用标志时)。
这有点奇怪--就像Android试图显示两次吐司一样。
https://stackoverflow.com/questions/12163933
复制相似问题