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

Eld*_*oth 16 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) 打开声音并打开振动.

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

但是,仅使用Android 5.0不能处理Android 5.0中的所有设备音量模式AudioManager.setRingerMode.

根据文件:

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

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

use*_*882 0

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

setVibrate (long[] pattern)
Run Code Online (Sandbox Code Playgroud)

该方法控制设备的振动。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)
Run Code Online (Sandbox Code Playgroud)

这设置了通知属性,即SOUND,,VIBRATEALL等等。

来自文档:

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

http://developer.android.com/reference/android/app/Notification.Builder.html#setDefaults默认值)

希望这可以帮助。