报警在静音/优先模式下不响铃

时间:2016-01-24 00:30:03

标签: android xamarin notifications alarmmanager android-alarms

在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);

1 个答案:

答案 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());

编辑: 请注意,如果设备完全打开“请勿打扰”(总静音),无论您在此处设置什么属性,系统都不会播放您的通知声音。