手机进入睡眠状态时不播放自定义通知声音

Posted

技术标签:

【中文标题】手机进入睡眠状态时不播放自定义通知声音【英文标题】:Custom notification sound does not play when phone goes to sleep 【发布时间】:2018-05-15 11:53:24 【问题描述】:

收到特定类型的 Firebase 通知时,我正在播放自定义通知声音。基本上,路径在有效负载中指定,.mp3 文件位于文档中指定的 android 平台文件夹的 resources/raw/ 路径中。

问题是自定义通知声音总是播放,除非我让手机进入睡眠状态而应用程序处于前台。在这种情况下,它将播放手机本身的默认通知声音。如果在应用程序处于前台时手动锁定手机,则自定义通知声音可以正常播放。只有当我让手机自己睡觉时才会发生这种情况。最重要的是,例如,该问题仅发生在某些手机(通常是旧型号)上; 三星 Galaxy J1 迷你。此手机的 Android 版本为 5.1.1

我在代码或有效负载中没有任何问题,因为仅当手机在某些手机型号上睡眠时才会发生这种情况。我没有找到任何解决此问题的在线资源,所以我希望这里有人以前遇到过这个问题。

【问题讨论】:

您使用的是较新的 FCM 还是较旧的 GCM?消息是否包含“数据”有效负载,或“通知”有效负载,或两者兼而有之?您能否在您的应用中发布任何在收到 FCM/GCM 消息时执行的代码? "to": "deviceToken", "priority": "high", "notification": "title": "Test title", "body": "Test message", "sound": "notification", "content_available": 1 , "data": "message": "Test message", "notifType": "typeCode", "bookingId": "Test ID" 这是有效载荷的样子。有效载荷在应用程序上处理得很好。当移动设备进入睡眠状态并收到通知时,在有效负载(“声音”:“通知”)上指定的通知 .mp3 不会播放。 当错误的通知声音播放时,您是否还会收到系统托盘通知,其中包含有效负载中指定的消息?另外,您在应用中使用的是哪个版本的 com.google.firebase:firebase-messaging 库?如果它不是最新版本,是否可以选择升级到最新版本(或至少某个更高版本)并查看是否有帮助? 是的,系统托盘通知收到就好了,包括消息。我正在使用 cordova-plugin-firebase v0.1.23。 @edgaralienfoe 你能解决这个问题吗? .? 【参考方案1】:

如果发生这种情况,则意味着 GCM 推送消息没有发送到您的设备。最常见的原因是:

1.您已在 Android 的系统设置中禁用了 Google Play 服务的“背景数据”。

2.同时检查您的应用程序“背景数据”。

3.一些Android手机我们使用手机管家就是这样。它会停止在后台运行我们的应用程序。所以当手机被锁定时我们必须允许我们的应用程序在后台运行。(对于Whatsapp,Facebook App的移动公司自动启用在后台运行服务)。

4.如果您使用任何主题启动器,您将不会收到任何通知。

当我遇到这个问题时,我遵循了这些步骤。

【讨论】:

GCM 推送消息实际上可以正常到达,并且任何相关的有效负载都得到了正确处理。没有播放自定义通知声音,而是播放默认通知声音。我再说一遍——这种情况只发生在上述手机进入睡眠状态(非手动锁定)时。

以上是关于手机进入睡眠状态时不播放自定义通知声音的主要内容,如果未能解决你的问题,请参考以下文章

使用 Cloud Functions 播放自定义通知声音 - iOS

为啥 Galaxy S21 没有自定义通知声音

APN 自定义通知声音问题

自定义通知(Remoteview)在应用被杀死时不起作用

当应用程序处于后台时,Flutter Cloud Messaging 自定义通知声音不起作用

自定义通知声音在 Android Oreo 中不起作用