FCM - onTokenRefresh() 永远不会被调用
Posted
技术标签:
【中文标题】FCM - onTokenRefresh() 永远不会被调用【英文标题】:FCM - onTokenRefresh() is never called 【发布时间】:2016-08-15 12:39:40 【问题描述】:我已关注 Firebase 云消息传递中提到的 setup process。但不知何故,永远不会调用 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 设备在上述设置下运行良好。
【问题讨论】:
在重新安装之前尝试卸载应用程序。 ps:只有第一个动作“INSTANCE_ID_EVENT”是正确的。您可以删除第二个。 试过重装,没用 看看吧:***.com/a/37831267/1739882 @ChintanSoni - 我没有在我的应用程序标签中的任何地方使用 tools:node="replace"。 刚刚发现只有模拟器才会出现这种情况,Android 设备在上述设置下运行良好。 【参考方案1】:FCM 客户端需要运行 Android 2.3 或更高版本的设备 已安装 Google Play Store 应用程序或运行模拟器 带有 Google API 的 Android 2.3。
【讨论】:
以上是关于FCM - onTokenRefresh() 永远不会被调用的主要内容,如果未能解决你的问题,请参考以下文章