【问题标题】:Android - Prevent people to change the volumeAndroid - 防止人们改变音量
【发布时间】:2012-06-03 05:03:03
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 听起来很烦人。为什么你比你的用户更了解?
  • 如果它发出的声音让我无法静音/降低音量,无论应用程序是什么,我都会立即卸载它。
  • 谢天谢地,您不能覆盖它,原因与您无法控制平台的原因相同。
  • 不是我想要的那种应用程序。你的应用绝不应该凌驾于我的意愿之上。
  • 伙计们,伙计们,冷静下来。我完全理解你并同意,但我正在开发的应用程序很特别。它测试用户的听力损失。这个想法是,当音调在背景中以特定频率播放并增加声音强度时,用户不应该能够改变设备的音量,否则测试结果将是错误的。

标签: android


【解决方案1】:

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

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

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

【讨论】:

  • 非常感谢。这绝对帮助了我。 (我在上面写了为什么我需要这个功能。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-10
  • 1970-01-01
  • 2017-07-24
  • 2017-11-08
  • 2012-10-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多