在Android 5+的静音/优先模式下,以下代码应该响铃,但是我发现如果在截止日期前几小时设置了它,它实际上并没有响。但是,通知它自己正确显示,但是静音。有没有人知道实现这一目标的方法,或者可能是一种解决方法?提前谢谢。
var alarmManager = (AlarmManager) Activity.GetSystemService(Context.AlarmService);
var intent = new Intent (Context, typeof(AlarmReceiver));
var pendingIntent = PendingIntent.GetBroadcast (Context, 0, intent,
PendingIntentFlags.UpdateCurrent);
// milliseconds is a double containing those from now to the alarm time
alarmManager.SetExact (AlarmType.RtcWakeup, milliseconds, pendingIntent);
AlarmReceiver:
var notificationIntent = new Intent (context, typeof(MyActivity));
var contentIntent = PendingIntent.GetActivity (context, 0, notificationIntent,
PendingIntentFlags.CancelCurrent);
var manager = NotificationManagerCompat.From (context);
var notification = new NotificationCompat.Builder (context)
.SetContentIntent (contentIntent)
.SetWhen(Java.Lang.JavaSystem.CurrentTimeMillis())
// Yes, I'm using a custom sound (MP3)
.SetSound(soundUri)
.SetCategory(Notification.CategoryAlarm)
.Build();
manager.Notify(0, notification);
答案 0 :(得分:0)
我认为this question会有所帮助。
尝试为通知添加优先级,然后添加AudioAttributes对象作为setSound的第二个参数。我认为系统正在播放已经静音的音频流上的声音。从链接的问题:
AudioAttributes.Builder attrs = new AudioAttributes.Builder();
attrs.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION);
attrs.setUsage(AudioAttributes.USAGE_ALARM);
notification.setPriority(Notification.PRIORITY_MAX);
notification.setSound(soundUri, attrs.build());
编辑: 请注意,如果设备完全打开“请勿打扰”(总静音),无论您在此处设置什么属性,系统都不会播放您的通知声音。