2016-08-15 96 views
5

我都跟着setup process提到了火力地堡雲端通訊。但不知何故onTokenRefresh永遠不會被調用。FCM - onTokenRefresh()不會被調用

以下是這方面的變化:

應用程序的build.gradle:

dependencies { 
    ... 
    compile 'com.google.firebase:firebase-messaging:9.4.0' 
} 

apply plugin: 'com.google.gms.google-services' 

項目的build.gradle:

dependencies { 
    classpath 'com.android.tools.build:gradle:2.1.2' 
    classpath 'com.google.gms:google-services:3.0.0' 
} 

AndroidManifest.xml中

<application 
    ... 
    <service 
     android:name="com.blynq.app.services.MyFirebaseMessagingService"> 
     <intent-filter> 
      <action android:name="com.google.firebase.MESSAGING_EVENT"/> 
     </intent-filter> 
    </service> 

    <service 
     android:name="com.blynq.app.services.MyFirebaseInstanceIDService"> 
     <intent-filter> 
      <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/> 
     </intent-filter> 
    </service> 

</application> 


public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService { 

    @Override 
    public void onTokenRefresh() { 
     String token = FirebaseInstanceId.getInstance().getToken(); 
     Log.i("FCM", "Token refreshed - " + token); 
     registerTokenWithServer(token); 
    } 
} 

日誌狀態I/FirebaseInitProvider: FirebaseApp initialization successful,但onTokenRefresh()未執行。

我確定我錯過了一些東西,但無法理解它在哪裏。

編輯:只用仿真器破天,Android設備工作正常與上面的設置。

+0

嘗試重新安裝之前卸載應用程序。 ps:只有第一個動作「INSTANCE_ID_EVENT」是正確的。你可以刪除第二個。 –

+0

嘗試重新安裝,沒有工作 – jay

+0

看一看吧:http://stackoverflow.com/a/37831267/1739882 –

回答

1

FCM客戶需要運行Android 2.3或更高版本的設備也 有谷歌播放安裝商店應用,或者仿真器上運行 的Android 2.3與谷歌的API。