【问题标题】:Android ICS control Silent Mode Off, Vibrate, or MuteAndroid ICS 控制静音模式关闭、振动或静音
【发布时间】:2012-09-01 18:43:45
【问题描述】:

我到处寻找我能想到的答案,关于 Android 中的音频有很多问题,但我找不到任何关于 ICS 中的新设置的问题。

我的应用程序有一个功能,用户可以按下一个按钮,手机的铃声将静音,并且没有振动。这是我的代码,到目前为止它运行良好:

        mAudioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_OFF);
        mAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
        mAudioManager.setStreamVolume(AudioManager.STREAM_RING, 0, 0);

现在发生的情况是,当用户按下按钮时,音量仍会变为 0,但手机,特别是 Galaxy S3,会有短暂的振动。然后在设置->声音中,静音模式已从关闭更改为振动。因此,无论何时发生某些事情,它仍然会有简短的振动通知。我无法进行足够彻底的测试,无法知道具体发生了什么以使其像那样振动,但这不是问题的重点。

我的问题是我们如何控制关闭、振动和静音的 ICS 静音模式设置?我希望能够在他们按下该按钮时将其设置为静音,然后当他们再次按下它时返回关闭,或者他们设置的任何设置。我尝试使用 mAudioManager.setStreamMute 方法,但这不是想要的效果,它也不会改变静音模式的设置。

提前感谢您的帮助,非常感谢!

保罗

【问题讨论】:

  • mAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT); 将设置静音模式。我认为这条线可以完成这项工作。
  • 我删除了我说它不起作用的评论,因为似乎涉及其他因素!我认为它确实有效,但当我确定时我会留下另一条评论。我将简化我的代码,以便我可以轻松地检查,因为它现在正在做很多事情来确定那个设置。非常感谢!!

标签: android


【解决方案1】:

好的,我想通了!!!! +1 向 iturki 寻求帮助,谢谢!!我已经尝试过 RINGER_MODE_SILENT,但认为它不起作用。它没有用,但那是因为它只是解决方案的一半。不过还是需要的!

这就是它每次都对我有用的方式:

我发现无论是设置 AudioManager.RINGER_MODE_NORMAL 还是 AudioManager.RINGER_MODE_SILENT,我仍然会收到通知的振动。这就是为什么我评论说它不起作用。经过进一步测试,我发现不是 RINGER_MODE 设置造成的,实际上是这行代码:

mAudioManager.setStreamVolume(AudioManager.STREAM_RING, 0, 0);

由于某种我不知道的原因,当 RINGER_MODE 设置为 NORMAL 或 SILENT 时,当 STREAM_RING 音量以这种方式设置为 0 时,它会更改 Settings->Sound to Vibrate 中的静音模式设置。

解决方案:

    mAudioManager.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER, AudioManager.VIBRATE_SETTING_OFF);
    mAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);

我不得不删除 STREAM_RING 设置,然后不管它。现在,当我将其设置为 RINGER_MODE_SILENT 并单独留下 STREAM_RING 时,不再有烦人的半秒振动!!!还有一点需要注意的是,我在没有将 VibrateSetting 设置为 OFF 的情况下进行了测试,它仍然可以工作,但出于其他原因,我将它留在了我的应用中。

重要提示:我不知道从 RINGER_MODE_NORMAL 到 RINGER_MODE_SILENT 的这种更改会如何影响以前的 Android 版本,所以要小心。如果有人确定此更改会对以前的版本产生什么影响,请随时告诉我们!

再次感谢 iturki 的帮助!

【讨论】:

  • 很难找到这个解决方案,但这正是我所寻找的。此代码也适用于以前版本的 Android - 我检查了 2.3.5。
猜你喜欢
  • 2011-09-12
  • 1970-01-01
  • 1970-01-01
  • 2021-07-13
  • 1970-01-01
  • 2012-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多