当前位置: 首页 > 知识库问答 >
问题:

AndroidFCM推送通知中未播放声音

芮祺
2023-03-14

我正在从调用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();
    }
}

有什么问题吗???

共有1个答案

赫连开畅
2023-03-14

您需要在notification builder上设置声音。所以,尝试在第行下方取消注释。

.setSound(defaultSoundUri)

并在下面评论。

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

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

支持应用程序中捆绑的声音资源的“默认”或文件名。声音文件必须位于

 类似资料:
  • 我为沙盒iOS设置了推送通知,它们曾经工作过,但由于某种原因目前不工作。这是来自云观察日志的错误AWS SNS: 这是我的发送代码(AWS Lambda调用此代码): Lambda方法的返回数据: 我已经将问题缩小到不与我的lambda方法关联,因为我试图发布到直接从SNS控制台创建的endpoint。我还想知道为什么这个旧的实现在过去,一个月或两个月前,仍然有效,而现在不再有效。我认为这可能与过

  • 我正在从Firebase向我的Android应用程序发送推送通知,但它仅在收到通知时播放默认声音。 我在fcm通知对象中设置了自定义声音参数{“sound”:“notificationsound.mp3”},该文件根据(https://firebase.google.com/docs/cloud-messaging/http-server-ref)但它仍然在所有应用程序状态(背景、前景和终止)上播

  • 我有一个由AWS上的lambda触发的SNS,它会生成iOS消息推送,工作正常,但问题是声音没有发生… 我的有效载荷有什么问题?,声音和徽章还没有设置好。干杯

  • 首先,我想声明我一直在研究推送通知和web通知之间的关系,但我有点困惑。 我从这里读到PWAs的推送通知在Safari上的iOS(iPhone)不起作用:从PWA向iOS发送推送通知 然而,如果iPhone用户使用的是Chrome,这是否意味着它们可以工作呢?或者推送通知在任何浏览器上对iPhone中的PWAs都不起作用? 这就把我带到了web通知。web通知在后台对PWAs起作用吗?我的问题是w

  • 问题内容: 我正在使用第一个Android应用程序来使用Google Cloud Messaging(GCM)服务进行推送通知。我已经可以从服务器应用程序成功发送消息,并将消息的内容记录在客户端应用程序的GCMIntentService类中的onMessage事件中。但是,我在设备上看不到任何视觉信息,表明已收到消息。我希望该消息会出现在手机的下拉通知列表中,就像iPhone一样。是否必须手动编码

  • 通过上面的行,我得到了一个URL,它将在大约一个月内有用。 现在我不可能做的是将推送通知发送到应用程序。 任何关于如何使用Uri和如何将信息发送到它的光我会很高兴,因为我的400错误,那是关于我的post消息的一些错误。 我可以在发布或调试模式下获得推送通知吗? 使用PHP可以完成带有正确Uri的推送通知吗?