我使用的是Firebase通知。要进行测试,我会从Firebase控制台发送通知。但在我的MainActivity
我无法获取数据,我在控制台中设置了数据。
onMessageReceived(RemoteMessage msg)
中的方法MyFirebaseService
没有被调用(如果方法没有被调用 - 数据传输到MainActivity
中的Intent
)。但是我没有在Intent
中看到这些数据。
答案 0 :(得分:0)
如果使用控制台发送通知,则不将其视为有效负载,因此如果应用程序在后台运行,则不会调用onMessageReceived()方法。但是,如果应用程序在前台运行,它就会。
这是一个curl命令,通过curl作为有效负载发送通知,你必须使用shell来使用它。
curl -X POST --header "Authorization: key=<APIKEY>" --Header "Content-Type:
application/json" https://fcm.googleapis.com/fcm/send -d '{"to":"<YourToken>","data":{"type":"notification","message":"Hello, it works"}}'
**注意:删除&lt;&gt;。
你的onMessageReceived()方法看起来像这样来获取数据。
@Override
public void onMessageReceived(final RemoteMessage remoteMessage) {
try {
String remote_type = remoteMessage.getData().get("type");
if (remote_type.equals("notification")){
String message = remoteMessage.getData().get("message");
Log.d("ReceivedData", message);
}
}catch(NullPointerException e){
}