Android 5.0(API 21)中AudioManager.setRingerMode()的替代方案

Android 5.0(API 21)中AudioManager.setRingerMode()的替代方案,android,android-notifications,android-audiomanager,Android,Android Notifications,Android Audiomanager,我使用AudioManager.setRingerMode()处理应用程序中的设备卷,方法是: AudioManager.setRingerMode(AudioManager.RINGER\u MODE\u SILENT)关闭振动和声音 AudioManager.setRingerMode(AudioManager.RINGER\u模式\u振动)关闭声音并打开振动 AudioManager.setRingerMode(AudioManager.RINGER\u MODE\u NORMAL)打开

我使用AudioManager.setRingerMode()处理应用程序中的设备卷,方法是:

  • AudioManager.setRingerMode(AudioManager.RINGER\u MODE\u SILENT)
    关闭振动和声音
  • AudioManager.setRingerMode(AudioManager.RINGER\u模式\u振动)
    关闭声音并打开振动
  • AudioManager.setRingerMode(AudioManager.RINGER\u MODE\u NORMAL)
    打开声音和振动
换句话说,我能够控制设备的音量并达到所有“模式”

但是,在安卓5.0中,仅使用
AudioManager.setRingerMode
无法处理设备音量的所有模式

根据:

将设备设置为RINGER_MODE_SILENT可使设备进入新的优先级模式。如果将设备设置为RINGER_mode_NORMAL或RINGER_mode_Vibration,则设备将离开优先级模式


在Android 5.0中,我如何处理设备音量的所有模式(无、振动优先、声音优先、振动全部、声音全部)?

在新的5.0 API中,有许多方法可用于设置振铃器/振动

setVibrate (long[] pattern)
这种方法控制设备的振动。花费很长时间,其中第一个值指示在打开
可控震源之前等待的
毫秒数。更多详情:

,int)

这一个设置通知属性,即
声音
振动
全部

从文档中:

该值应为以下一个或多个字段与 按位or:默认声音、默认振动、默认灯光

(int默认值)


希望这有帮助。

您指的是哪种通知?您是否使用通知管理器创建它们?我指的是设备的声音通知。我怎样才能通过密码达到“完全沉默”呢?我并没有试图发送声音通知或振动。问题是关于设备的声音控制。简单地说,如何将设备的声音控制设置为“无”?。。查看链接中的第一行。谷歌建议每个应用程序处理自己的声音/振动,而不是试图控制设备本身的音量。好的,我同意尝试控制设备音量不是一个好的做法。但是,假设我想控制它。有什么办法吗?好的,首先OP提到了在应用程序中处理通知。OP中提供的链接还指向5.0中的通知行为更改。如果您担心处理应用程序发出的通知声音,那么答案应该可以。如果您正在谈论控制设备的声音,您仍然可以使用RingerMode类。我想OP需要更新。哦,对不起。通过通知,我想说的是设备卷。如果我试图设置我的应用程序的振铃器/振动,你的答案将是正确的。使用RingerMode类,我无法达到卷设备的“无”状态。有没有办法达到这种状态?
setDefaults (int defaults)