4

只要打开应用程序,我怎么能不允许用户更改设备的音量?,如果可能的话。

我发现您可以使用 AudioManger 将音量设置为静音:

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

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

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

4

1 回答 1

7

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

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

@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);
于 2012-05-28T23:14:52.923 回答