我已按照Firebase云消息传递中提到的setup process进行操作。但不知怎的onTokenRefresh永远不会被调用。
以下是这方面的变化:
app 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 :(得分:1)
FCM客户端也需要运行Android 2.3或更高版本的设备 已安装Google Play商店应用,或正在运行模拟器 Android 2.3使用Google API。