- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用通知构建器setSound()方法将通知分组并仅针对其中一些触发声音,但是它不起作用。每次我收到通知时,即使我调用setSound(null),它也会触发铃声
这是我的代码:
TaskStackBuilder stackBuilder = TaskStackBuilder.create(getContext());
stackBuilder.addParentStack(getParentActivityClass());
Intent notificationIntent = intent == null ? new Intent() : new Intent(intent);
if (cls != null)
notificationIntent.setClass(getContext(), cls);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
stackBuilder.addNextIntentWithParentStack(notificationIntent);
PendingIntent pendingIntent = stackBuilder.getPendingIntent(0,
PendingIntent.FLAG_UPDATE_CURRENT);
InboxStyle style = new NotificationCompat.InboxStyle();
int mapId = subGroupId + groupId;
putGroupLine(mapId, text);
List<String> notifLines = groupedNotificationsMap.get(mapId);
for (int i = 0; i < notifLines.size(); i++) {
style.addLine(notifLines.get(i));
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
String NOTIFICATION_CHANNEL_ID = "default";
String channelName = "Default";
NotificationChannel chan = new NotificationChannel(NOTIFICATION_CHANNEL_ID, channelName
, NotificationManager.IMPORTANCE_HIGH);
chan.setLightColor(Color.BLUE);
chan.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);
if (alert == false) {
chan.setSound(null, null);
chan.setVibrationPattern(null);
}
else {
chan.setVibrationPattern(vibrate);
}
NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
manager.createNotificationChannel(chan);
}
NotificationCompat.Builder mBuilder;
mBuilder = new NotificationCompat.Builder(context, "default")
.setSmallIcon(getSmallIconResource())
.setAutoCancel(true);
int colorRes = getSmallIconColor();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
mBuilder.setGroupAlertBehavior(NotificationCompat.GROUP_ALERT_SUMMARY);
}
if (alert) {
mBuilder.setSound(getRingtone());
mBuilder.setVibrate( vibrate );
}
else {
mBuilder.setSound(null);
mBuilder.setVibrate(null);
}
Notification notif = mBuilder
.setContentTitle(title)
.setTicker(text)
.setContentText(text)
.setSmallIcon(getSmallIconResource())
.setStyle(style
.setBigContentTitle(title)
)
.setGroup("g" + groupId)
.setContentIntent(pendingIntent)
.build();
NotificationCompat.Builder summaryBiulder = new NotificationCompat.Builder(getContext(), "default")
.setContentTitle(title)
.setAutoCancel(true)
//set content text to support devices running API level < 24
.setContentText(text)
.setSmallIcon(getSmallIconResource())
//build summary info into InboxStyle template
.setStyle(new InboxStyle()
.setBigContentTitle(title)
.setSummaryText(title))
.setColor(colorRes)
//specify which group this notification belongs to
.setGroup("g" + groupId)
//set this notification as the summary for the group
.setGroupSummary(true)
.setGroupAlertBehavior(NotificationCompat.GROUP_ALERT_SUMMARY)
.setContentIntent(pendingIntent);
if (alert) {
summaryBiulder.setSound(getRingtone());
summaryBiulder.setVibrate( vibrate );
}
else {
summaryBiulder.setSound(null);
summaryBiulder.setVibrate(null);
}
Notification summaryNotification = summaryBiulder .build();
notif.flags |= Notification.FLAG_AUTO_CANCEL;
notif.flags |= Notification.FLAG_HIGH_PRIORITY;
notifManager.notify(subGroupId, notif);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
notifManager.notify(groupId, summaryNotification);
}
最佳答案
在代码段中,
NotificationChannel chan = new NotificationChannel(NOTIFICATION_CHANNEL_ID, channelName,
NotificationManager.IMPORTANCE_HIGH);
尝试更换
IMPORTANCE_HIGH
Higher notification importance: shows everywhere, makes noise and peeks. May use full screen intents.
关于android - 通知总是发出声音:setSound(null)在OS> = 8上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55128374/
在我的针对 API 23+ 的混合 Cordova Android 应用程序中,我想使用自定义声音进行通知。为此,我做了以下工作 在 plugin.xml我在我声明的应用程序中使用的单个自定义插件的文
我正在尝试在收到推送通知时播放声音。代码的要点如下所示: Resources r = getResources(); int resourceId = r.getIdentifier(soundNam
我正在执行如下通知。默认警报声音播放正常,但只有一次。我想要的只是重复播放直到注册水龙头。 NotificationCompat.Builder mBuilder = new Notificatio
我正在尝试使用通知构建器setSound()方法将通知分组并仅针对其中一些触发声音,但是它不起作用。每次我收到通知时,即使我调用setSound(null),它也会触发铃声 这是我的代码: T
SetSound - 此 API 现在已过时。用什么? 我可以用.SetDefaults (Resource.Drawable.MYSOUNDMP3)在 NotificationCompat.
尝试在我的应用程序中创建通知时,设置自定义通知声音不起作用,使用系统默认声音。另外,我正在尝试在我的通知中启用振动,但它也不起作用。 我正在尝试按如下方式设置声音(相关 fragment ,请参阅下面
我正在构建一个 ping 功能,用于通过蓝牙寻找丢失的手机。我需要手机发出声音,即使它设置为静音/无声,就像闹钟通常的工作方式一样。我以为我可以将我的 notification 的 streamtyp
我一直在浪费至少一天的时间来尝试完成这项工作。我正在尝试播放一个 mp3 文件,该文件在收到通知后放置在 Resources/raw 中。我不知道如何获得 Uri。我的问题是: 1.要播放自定义文件,
我是一名优秀的程序员,十分优秀!