我已经关注了 setup process如 Firebase 云消息传递所述。但不知何故,永远不会调用 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 初始化成功
,但未执行 onTokenRefresh()。
我确实遗漏了什么,但无法理解在哪里。
编辑:仅在模拟器上发生,android 设备在上述设置下运行良好。
最佳答案
FCM clients require devices running Android 2.3 or higher that also have the Google Play Store app installed, or an emulator running Android 2.3 with Google APIs.
关于android - FCM - 永远不会调用 onTokenRefresh(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38955257/