我最近更新了我的应用程序,通过FCM发送消息,当应用程序在Jelly Bean上运行时,它运行良好.问题是它不是棒棒糖和应用程序在后台.
我读了documentation,并且声明当有效载荷是数据消息时,它将由onMessageReceived()处理.我发送数据有效负载,而不是通知,只要它是JellyBean就可以正确处理.对于Lollipop,它仅在应用程序位于前台时处理消息.如果没有,没有任何反应.
这就是我的FirebaseMessagingService的开头如下所示:
public class FirebaseBroadcastReceiverService extends FirebaseMessagingService {
private final String TAG = FirebaseBroadcastReceiverService.class.getName();
@Override
public void onMessageReceived(RemoteMessage message){
Log.i(TAG, "A message is received");
String from = message.getFrom();
Map data = message.getData();
.....
}
}
清单:
android:name=".controller.application.AppResources"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher_shadow"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@android:style/Theme.Black.NoTitleBar">
android:name=".model.firebase.FirebaseListenerService">
.......
有效载荷:
{
"data": {
"test": "test"
},
"to" : "MY FCM REGISTRATION ID"
}
使用Authorization和Content-type标头通过POST发送到https://fcm.googleapis.com/fcm/send.
我可能已经阅读了与此相关的所有其他SO线程,但我找不到它的答案,并且Android Monitor中也没有日志跟踪.有人对此有暗示吗?