作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的目标是 Android 8.0 及更高版本,并希望我的远程通知在
a) 设备处于请勿打扰模式(启用异常(exception))
和
b) 设备在后台。
当不处于 DND 模式时,通知会按预期工作。在 DND 模式下,在前台有一个视觉通知,但在后台没有音频。
我的 channel 设置如下:
private void InitialiseNotificationChannel(NotificationManager notificationManager, string channelID, string name, string soundFilename)
{
// create channel
NotificationChannel channel = new NotificationChannel(channelID, name, NotificationImportance.High);
// create sound URI
Android.Net.Uri uri = Android.Net.Uri.Parse("android.resource://" + Application.Context.PackageName + "/raw/" + soundFilename);
// create audio attributes
AudioAttributes alarmAttributes = new AudioAttributes.Builder()
.SetContentType(AudioContentType.Sonification)
.SetUsage(AudioUsageKind.Notification).Build();
// setup channel
channel.SetSound(uri, alarmAttributes);
channel.EnableVibration(true);
channel.EnableLights(true);
channel.LightColor = Resource.Color.red;
long[] vibrationPattern = { 100, 200, 300, 400, 500, 600, 1000 };
channel.SetVibrationPattern(vibrationPattern);
// Bypass Do Not Disturb
channel.SetBypassDnd(true);
channel.LockscreenVisibility = NotificationVisibility.Public;
// add channel
notificationManager.CreateNotificationChannel(channel);
}
我还设置了过滤来处理异常:
if (Build.VERSION.SdkInt >= BuildVersionCodes.M)
notificationManager.NotificationPolicy = new NotificationManager.Policy(NotificationPriorityCategory.Events, NotificationPrioritySenders.Any, NotificationPrioritySenders.Any);
notificationManager.SetInterruptionFilter(InterruptionFilter.All);
我在设备上为应用程序选择了所有类型的异常,即:
所有电话,
所有消息,
警报/任务开启,
开启提醒
但是在后台收到通知时仍然没有声音。
知道我遗漏了什么吗?
谢谢
最佳答案
请记住,根据 docs , SetBypassDnd 只能由系统本身(用户点击设备设置)和通知排名器修改。
关于安卓 : How to bypass Do Not Disturb So that it plays notification audio in background,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59264109/
我是一名优秀的程序员,十分优秀!