人造人;FCM 推送通知中未播放声音



我正在从我们的应用服务器向用户发送调用 Firebase API 的数据消息。用户正在接收通知,但在通知到达时未播放声音。

这是代码

public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
sendNotification(remoteMessage); 
}
private void sendNotification(RemoteMessage message) {
Intent intent;
intent = new Intent(this, HomeActivity.class);
Log.d(TAG, message.getData().toString());
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent,
PendingIntent.FLAG_ONE_SHOT);
Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
Ringtone r = RingtoneManager.getRingtone(this, defaultSoundUri);
r.play();
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle(message.getData().get("title"))
.setContentText(Html.fromHtml(message.getData().get("body")))
.setAutoCancel(true)
//                .setSound(defaultSoundUri)
.setContentIntent(pendingIntent);
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, notificationBuilder.build());
saveMessage(message);
} catch (Exception e) {
e.printStackTrace();
}
}

可能是什么问题???

您需要在通知构建器上设置声音。 因此,请尝试在下面取消注释。

.setSound(defaultSoundUri)

并在行下方评论。

//Ringtone r = RingtoneManager.getRingtone(this, defaultSoundUri);
//r.play(); 

如果要在应用处于后台时播放通知声音,则需要将声音参数添加到通知有效负载中。

支持应用程序中捆绑的声音资源的"默认">文件名。 声音文件必须驻留在/res/raw/

相关内容

  • 没有找到相关文章

最新更新