0

當我從啓用Firebase的項目發送消息時,哪些意向操作被觸發?發送消息時接收到什麼意圖操作?

我的清單如下:

<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保留在我的Manifest中,以便與支持FCM或GCM的許多應用程序向後兼容。

回答

1

這只是預期的行爲。因爲即使使用FCM發送消息,仍然有GCM實現的設備/應用程序實例仍然能夠接收消息。

It's just compatible。您並不需要實施兩個單獨的服務,以確保該應用程序與GCM和FCM兼容。

實際上,有沒有辦法判斷它(至少是不適合我)保證,但我想這是肯定地說,他們將繼續兼容,直到谷歌決定棄用這樣的時間它完全。