2016-08-15 72 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。