2012-05-28 33 views
1

只要应用程序打开,用户不应该被允许更改设备的音量,如果可以的话,我该如何设置?Android - 防止人们更改音量

我发现,您可以设置体积AudioManger静音:

AudioManager volumeControl = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
volumeControl.setStreamMute(AudioManager.STREAM_MUSIC, true); 

但是这不是我要找的。我希望当用户进入应用程序锁定其当前的音量,并不允许改变它,而在后台播放旋律增加音量。 (这是为什么我不想让用户控制音量的原因)

我在考虑是否有可能覆盖音量提高,音量减小键?就像我们可以覆盖后退按钮一样。

+6

听起来很烦人。你为什么比用户更了解? – sarnold

+4

我会立即卸载它,如果它使声音无法静音/减少音量,无论是什么应用程序。 –

+0

幸好,出于无法控制平台的相同原因,您无法重写此操作。 –

回答

5

我在想是否有可能覆盖音量提高,音量减小键?就像我们可以覆盖后退按钮一样。

是的,你可以用同样的方法处理它。

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if ((keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)){ 
     //Nothing 
    } 
    return true; 
} 

@sarnold我可以看到用例,如果它是一个闹钟。很多人都希望闹钟具备这项功能,当他们想要唤醒时,可以阻止他们关闭声音。

无论哪种方式,请注意,你可能会惹恼你的用户这样做。如果可能的话应该避免。

编辑:设定音量

AudioManager am = (AudioManager) getSystemService(AUDIO_SERVICE); 
    am.setStreamVolume(AudioManager.STREAM_MUSIC,6,0); 
+0

但是,如果音量已经设置得很低...? – 2012-05-28 23:21:53

+0

设置音量是一个单独的命令。看我的编辑。 – FoamyGuy

+0

非常感谢。这绝对帮助了我。 (我上面写了一个评论,为什么我需要这个功能。) – VCODE