将 FCM 和 GCM 用于不同的 API



是否可以在同一应用中使用 FCM 和 GCM,但用于不同的 API 编号?

我的意思是清单中这样的东西:

// if api >= 21 
<service
android:name=".MyFirebaseMessagingService">
.
.
</service>
// if api < 21 
<service
android:name=".MyGcmListenerService"
.
.
</service>

不可以,根据本文档,gcm 和 fcm 不能在同一应用程序中共存。

此外,gcm 已被弃用了很长一段时间,肯定会在 2019 年 4 月关闭。所以我强烈建议迁移到 fcm。使用链接的指南,从gcm迁移到fcm非常容易。

此外,gcm 不适用于使用奥利奥或更高版本的目标框架编译的应用程序。这是后台服务的权限限制。但是,根据Google最新的Playstore政策,如果您想将应用上传到Playstore,则必须至少在当前版本之前的最后一个API版本上编译定位(目标版本,非版本!(。这也适用于现有应用程序的更新。

权限问题有一个黑客解决方法,但是随着 gcm 在几个月内关闭,不值得付出努力。

最新更新