如何在app端添加fcm通知声音

时间:2017-10-26 13:29:48

标签: java android ios swift

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

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

如何在app端更改它(本地java程序用于android或swift程序用于IO)

2 个答案:

答案 0 :(得分:1)

 Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), notification);
        r.play();

当您想播放声音时输入此代码

答案 1 :(得分:0)

在Android上-

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

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

在iOS上-

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

  1. 将声音文件.caf/.aiff添加到您的项目中,并确保它位于->构建阶段->复制捆绑资源下(如果未添加)。
  2. 通知有效负载应具有一个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

欢呼和快乐的编码!