如何在应用端添加 fcm 通知声音

Posted

技术标签:

【中文标题】如何在应用端添加 fcm 通知声音【英文标题】:How to add fcm notification sound in app side 【发布时间】:2017-10-26 13:29:47 【问题描述】:

现在我的通知声音在服务器端


"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
   "data" : 
 "Nick" : "Mario",
 "body" : "great match!",
 "Room" : "PortugalVSDenmark"
,

如何在应用程序端更改它(android 本地 java 程序或 ios swift 程序)

【问题讨论】:

【参考方案1】:
 Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), notification);
        r.play();

放这个代码,当你想播放声音时

【讨论】:

【参考方案2】:

在 Android 上 -

    首先,您需要将声音文件添加到/main/res/raw/<file_name> 下的项目中。 您现在可以使用像 Uri notificationSoundUri = Uri.parse("android.resource://" + context.packageName + "/" + R.raw.<file_name>) 这样的 URI 来引用文件 接下来,当您使用 Oreo 及更高版本时,您必须处理通知渠道的边缘情况。所以这看起来像这样 -
   if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) 
       channel.setSound(notificationSoundUri,AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_NOTIFICATION).build())
    else 
       notificationBuilder.setSound(notificationSoundUri)
   
    最后 - NotificationManagerCompat.from(context).notify(id, notificationBuilder.build()) 应该可以解决问题。

这是一种更简洁的方法,因为用户可以在通知设置中将其关闭。

在 iOS 上 -

你不必做任何花哨的事情。

    将声音文件.caf/.aiff 添加到您的项目中,并确保它位于 -> Build Phases -> Copy Bundle Resources,如果没有添加。 通知负载应该有一个sound 参数,与.caf/.aiff 文件同名。看起来像这样 -
   
       "aps" : 
           "alert" : "You got your emails.",
           "badge" : 9,
           "sound" : "bingbong.aiff"
       ,
       "acme1" : "bar",
       "acme2" : 42
   

更多细节在这里-https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CreatingtheNotificationPayload.html

干杯,编码快乐!

【讨论】:

以上是关于如何在应用端添加 fcm 通知声音的主要内容,如果未能解决你的问题,请参考以下文章

如何添加fcm通知?

FCM 通知未发送声音

颤动的 FCM 通知声音在发布中不起作用

通过FCM进行iOS严重警报

Flutter iOS 和 Android 中的 FCM 自定义声音

FCM 自定义声音通知不适用于 IOS Xcode