即使在静音模式下,我正在编写应播放声音通知的应用。我不想暂时关闭Silent并将其推迟。我现在正在使用ALARM流。通常它工作正常,因为默认情况下ALARM流不会静音静音。但有时却是。
如何理解当前流静音(静音模式)? 如何取消静音(不切换到普通模式)?
答案 0 :(得分:1)
回答我自己的问题:
该解决方案在Android OS源代码中找到(在标准的Alarm应用程序中)。
我找到了检查并设置“静音警报”选项的方法:
private static final int ALARM_STREAM_TYPE_BIT =
1 << AudioManager.STREAM_ALARM;
public static void setAlarmInSilent(boolean on) {
int ringerModeStreamTypes = Settings.System.getInt(
context.getContentResolver(),
Settings.System.MODE_RINGER_STREAMS_AFFECTED, 0);
if (on) {
ringerModeStreamTypes &= ~ALARM_STREAM_TYPE_BIT;
} else {
ringerModeStreamTypes |= ALARM_STREAM_TYPE_BIT;
}
Settings.System.putInt(context.getContentResolver(),
Settings.System.MODE_RINGER_STREAMS_AFFECTED,
ringerModeStreamTypes );
}
链接到Android src:https://android.googlesource.com/platform/packages/apps/AlarmClock/+/donut-release2/src/com/android/alarmclock/SettingsActivity.java