我正在开发基于推送通知(自定义通知)的应用程序。我正在使用FCM
和javascript (index.js)
。我能够完美地触发推送通知,但问题是合理的。我希望在一种情况下(if
)带有声音的推送通知,而在另一种情况下(else
)没有声音的推送通知。发生的事情是,在两种情况下我都声音良好。如何在没有声音的情况下触发推送通知?
String remoteMessageSound = remoteMessageData.get(REMOTE_SOUND);
if (remoteMessageSound.equals("default")) {
Notification notificationDefault = new NotificationCompat.Builder(this, getString(R.string.default_notification_channel_id))
.setSmallIcon(R.drawable.namma_apartment_notification)
.setAutoCancel(true)
.setContentTitle(getString(R.string.app_name))
.setContentText(message)
.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
.setPriority(PRIORITY_DEFAULT)
.build();
Objects.requireNonNull(notificationManager).notify(mNotificationID, notificationDefault);
} else {
Notification notificationNoSound = new NotificationCompat.Builder(this, getString(R.string.default_notification_channel_id))
.setSmallIcon(R.drawable.namma_apartment_notification)
.setAutoCancel(true)
.setContentTitle(getString(R.string.app_name))
.setContentText(message)
.setSound(null)
.setPriority(PRIORITY_LOW)
.build();
Objects.requireNonNull(notificationManager).notify(mNotificationID, notificationNoSound);
}
这是我的index.js:
if (cabNotificationSound) {
payload = {
data: {
message: "Your Cab has " + status + " your society.",
"sound": "default",
type: "Cab_Notification"
}
};
}
else {
payload = {
data: {
message: "Your Cab has " + status + " your society.",
"sound": "",
type: "Cab_Notification"
}
};
}
return admin.messaging().sendToDevice(tokenId, payload).then(result => {
return console.log("Notification sent");
});
答案 0 :(得分:0)
在发送通知之前,尝试类似这样的操作直接在通道中设置声音(对于api> = 26 ):
NotificationManager manager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationChannel channel = manager.getNotificationChannel(getString(R.string.default_notification_channel_id));
channel.setSound(null, null);