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

时间:2014-12-09 03:18:34

标签: android android-notifications android-audiomanager

我使用AudioManager.setRingerMode()来处理我的应用程序中的设备卷:

  • AudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT)关闭振动和声音。
  • AudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE)关闭声音并打开振动。
  • AudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL)打开声音并打开振动。

换句话说,我能够控制设备音量并达到所有"模式"。

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

根据documentation

  

将设备设置为RINGER_MODE_SILENT会导致设备进入新的优先级模式。如果将设置设置为RINGER_MODE_NORMAL或RINGER_MODE_VIBRATE,设备将保留优先模式。

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

1 个答案:

答案 0 :(得分:-1)

使用新的5.0 API,有许多方法可用于设置振铃/振动。

setVibrate (long[] pattern)

此方法控制设备的振动。需要很长时间,其中第一个值表示在启用milliseconds之前要等待的vibrator个数。更多细节:

http://developer.android.com/reference/android/os/Vibrator.html#vibrate(long[],int)

http://developer.android.com/reference/android/app/Notification.Builder.html#setVibrate(long[])

setDefaults (int defaults)

此设置通知属性,即SOUNDVIBRATEALL等等。

来自文档:

  

该值应该是以下一个或多个字段的组合   按位 - 或:DEFAULT_SOUND,DEFAULT_VIBRATE,DEFAULT_LIGHTS。

http://developer.android.com/reference/android/app/Notification.Builder.html#setDefaults(int defaults)

希望这有帮助。