Android - 防止人们改变音量

标签 android

如果可能的话,我怎样才能在应用程序打开时不允许用户更改设备的音量?

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

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

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

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

最佳答案

I was thinking if there's a possibility to override the Volume up, Volume down keys? just like we can override the Back button.

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

@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);

关于Android - 防止人们改变音量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10791250/

相关文章:

Android RecyclerView 多过滤器

android - 如何构建 Cordova 8.x cordova.jar 以包含在现有 Android 应用程序中?

android widget 在几个小时后停止更新代码?

android - 更改时间强制关闭 : Time Picker (NPE)

android - 在模拟器中打开应用程序时出现 UnsatisfiedLinkError

android - Realm Android 上的复杂查询

退出应用程序时和正在显示 toast 时,Android取消 toast

带有即时应用程序的 android 架构组件

java - 仪器测试将在 Android Studio 3(空测试套件)上作为本地单元测试运行

android - 不允许按下按钮产生负值