我已经在我的应用上从GCM迁移到了FCM,
现在我无法接收FCM。
我使用了firebase助手,将应用程序连接到firebase好了并使用了这个依赖
dependencies {
compile 'com.google.firebase:firebase-messaging:11.6.2'
}
AndroidManifest:
<service android:name="com.galcomm.mobik.Service.FCMTokenRefreshListenerService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
<service android:name="com.galcomm.mobik.Service.FCMPushReceiverService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
RefreshToken服务:
public class FCMTokenRefreshListenerService extends FirebaseInstanceIdService {
//If the token is changed registering the device again
@Override
public void onTokenRefresh() {
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Log.d("fcm", "Refreshed token: " + refreshedToken);
sendRegistrationToServer(refreshedToken);
}
private void sendRegistrationToServer(String refreshedToken) {
Log.e("FCMTOKEN : ",refreshedToken);
}
}
和FirebaseMessaging服务
public class FCMPushReceiverService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage message){
String from = message.getFrom();
Log.e("FCMTOKEN ","NMSG_REC : "+from);
String title = message.getNotification().getTitle();
String body = message.getNotification().getBody();
Map data = message.getData();
sendNotification(from, data);
}}
现在我可以获得令牌了,但是当我在Firebase控制台测试通知上尝试它时,它说完了,但它没有转到OnMessageReceived
或放置通知,我尝试使用数据有效负载,而不是像其他提出的问题,但不是这样。
编辑:
当我尝试发送它时,它表示已完成,但下次我尝试使用相同的令牌时,它在firebase控制台和pushtry.com中都显示InvalidToken
编辑2:
当我尝试发送fcm时,我在logcat上发现了一个错误:
broadcast intent callback: result=CANCELLED forIntent { act=com.google.android.c2dm.intent.RECEIVE
我在这里缺少什么?
任何帮助都会很好,提前致谢