发送消息时会收到哪些意图操作?

What intent actions are received when a message is sent?

当我从支持 Firebase 的项目发送消息时,会触发哪些 Intent 操作?

我的清单如下:

<receiver android:name="com.test.testapi.MyPushReceiver"
            android:permission="com.google.android.c2dm.permission.SEND" >
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
                <category android:name="com.test.androidtester" />
            </intent-filter>
        </receiver>

<service
        android:name="com.test.testapi.MyFirebaseMessagingService"
        android:exported="false">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT"/>
        </intent-filter>
    </service>

我看到 MyFirebaseMessagingService 按预期被调用,但是我也看到 MyPushReceiver 通过 com.google.android.c2dm.intent.RECEIVE 意图操作被调用。

是否保证 com.google.android.c2dm.intent.RECEIVE 会继续被 Firebase 调用?也许 Google 在 GCM 完全弃用之前暂时保留此功能。

*注意:理想情况下,我希望在我的清单中保留现有的 MyPushReceiver,以便与我支持的可能位于 FCM 或 GCM 上的众多应用程序向后兼容。

这只是预期的行为。因为即使使用 FCM 发送消息,devices/app 个仍然具有 GCM 实现的实例仍然能够接收消息。

。您实际上不必为了确保应用与 GCM 和 FCM 兼容而实施两个单独的服务。

实际上无法判断它是否得到保证(至少对我来说不是),但我想可以肯定地说它们将继续compatible 直到 Google 决定完全弃用它。