【问题标题】:How to turn on/off all sounds from accessibility settings programmatically in android?如何在android中以编程方式打开/关闭辅助功能设置中的所有声音?
【发布时间】:2017-05-01 01:26:31
【问题描述】:

在Android 4.0+ 中有一个选项设置-> 辅助功能-> 关闭所有声音。 如果我选中该选项,Android 设备上运行的任何应用程序都不会产生任何声音。 我的应用程序必须发出警报声,因此如果有人选中了该选项,则该应用程序不会发出任何声音。 因此,每次用户启动应用程序时,我都必须自动取消选中该选项。 通过代码,我该怎么做?

如果有人可以分享一段代码,那将会很有帮助。我试过 AudioManager,但只有在启用移动音频的情况下才有效。

amanger.setRingerMode(AudioManager.RINGER_MODE_NORMAL);

amanger.setStreamMute(AudioManager.STREAM_MUSIC, false);

amanger.setStreamVolume(AudioManager.STREAM_MUSIC,
    (int)(amanger.getStreamMaxVolume(AudioManager.STREAM_MUSIC)*(75.0/100.0)), 0);

【问题讨论】:

  • 现有 Android 中没有“设置->辅助功能->关闭所有声音”选项。这是供应商定制,可能无法绕过它。此外,如果用户出于可访问性原因指定了“关闭声音”,您应该尊重他们的偏好并找到其他方式在不使用声音的情况下提醒他们。
  • 我可以买那个建议。谢谢。
  • 嘿@alanv,我建议您将其发布为答案。虽然它实际上并没有解决 OP 的原始问题,但它是正确的答案。

标签: android audio accessibility


【解决方案1】:

您可以使用以下功能禁用系统音量

public static void disableSound(Context context)
 {
     AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
     audioManager.setStreamVolume(AudioManager.STREAM_SYSTEM, 0, 0);
 }

如果要重新启用,只需更改参数即可

audioManager.setStreamVolume(AudioManager.STREAM_SYSTEM, 10, 0);

音量范围为 0-10

【讨论】:

  • “AudioManager.STREAM_SYSTEM”可以帮助你
  • 对不起。我觉得你不太明白我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-07
  • 2016-11-16
  • 2012-08-15
  • 1970-01-01
  • 2014-03-06
  • 1970-01-01
相关资源
最近更新 更多