在Nougat上多次接收FCM通知



我在应用程序中使用的firebase推动通知。但是,当我向某些事件发送通知时,仅在 Nougat Devices 上,我会多次收到通知的多次。我在设备上只收到一个比牛轧糖更低的通知。

我检查了服务器一次仅发送单个通知。我的应用程序gradle的依赖性低于

compile `com.google.firebase:firebase-messaging:11.8.0`

这是FCM侦听器的代码:

public class MyFcmListenerService extends FirebaseMessagingService {
    @Override
public void onMessageReceived(RemoteMessage remoteMessage) {
  }
}

在清单文件中:

<service android:name="com.myApp.test.fcm.MyFcmListenerService">
  <intent-filter>
     <action android:name="com.google.firebase.MESSAGING_EVENT" />
   </intent-filter>
</service>

当我尝试从旧的GCM迁移到新FCM时,我开始发生这种情况。您需要确保删除所有与GCM相关的代码,包括Gradle(删除com.google.android.gms:play-services-gcm(和清单

(删除:

<uses-permission android:name="mypackage.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission
    android:name="mypackage.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />

(

还要确保您清洁您的项目和重建 IT,以删除对GCM类的任何缓存引用。最后一部分花了我2个小时才能弄清楚。一个不错的技巧可能是查找所有(⇧⌘F(" GCM",看看您是否从生成的文件中获得命中。

我在我身上发生了同样的事情,我只尝试了所有事物

然后,我意识到我们从启动到结束时都存储了Android设备的所有FCM令牌,而无需验证或删除它们

我在我的服务器的DB

中插入了所有FCM令牌并重新插入了我的应用程序中插入了新的单数令牌

它运行良好,我认为FCM甚至在跨安装,多个APK和多个APK调试会话

发出新的代币之前将其无效。

尝试仅发送至1个令牌,还可以清洁构建并重新安装您的应用

相关内容

  • 没有找到相关文章

最新更新