FCM - 永远不会调用 onTokenRefresh()
FCM - onTokenRefresh() is never called
我已按照针对 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 设备在上述设置下运行良好。
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.
我已按照针对 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 设备在上述设置下运行良好。
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.