Android remoteMessage.getMessageType在onMessageReceived中返回null
我不确定应该返回什么Android remoteMessage.getMessageType在onMessageReceived中返回null,android,firebase,firebase-cloud-messaging,Android,Firebase,Firebase Cloud Messaging,我不确定应该返回什么getMessageType()。但它似乎不太可能返回数据或通知,因为。谢谢。 实际上,我找到了一种检查消息类型本身的方法。以下内容适用于我,无需使用getMessageType Map data=remoteMessage.getData(); RemoteMessage.Notification Notification=RemoteMessage.getNotification() 从文档中可以看出,这是一个可以在发送消息和使用SDK时设置的参数 publicmotem
getMessageType()
。但它似乎不太可能返回数据
或通知
,因为。谢谢。
实际上,我找到了一种检查消息类型本身的方法。以下内容适用于我,无需使用getMessageType
Map data=remoteMessage.getData();
RemoteMessage.Notification Notification=RemoteMessage.getNotification()
从文档中可以看出,这是一个可以在发送消息和使用SDK时设置的参数
publicmotemessage.Builder setMessageType(字符串messageType)
但是,当使用Firebase REST API发送消息时,我还没有看到指定消息类型的功能。您应该这样尝试
if (data.isEmpty()) { // message type is notification.
parseDataMessage(remoteMessage);
} else { // message type is data.
parseNotificationMessage(remoteMessage);
}
使用此代码
onMessageReceived
它对我有效:
if(getIntent().getExtras() != null && getIntent().getExtras().get("your_data_key") != null) {
String strNotificaiton = getIntent().getExtras().get("your_data_key").toString(); }
谢谢你,弗兰克。我只是想出了一个解决办法,并在不使用getMessageType()的情况下发布了我的答案。
if(getIntent().getExtras() != null && getIntent().getExtras().get("your_data_key") != null) {
String strNotificaiton = getIntent().getExtras().get("your_data_key").toString(); }
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Log.e(TAG, "From: " + remoteMessage.getFrom());
if (remoteMessage == null)
return;
//if message contains a notification payload.
if (remoteMessage.getNotification() != null) {
Log.e(TAG, "Notification Body: " + remoteMessage.getNotification().getBody());
handleNotification(remoteMessage.getNotification().getBody());
}
//if message contains a data payload.
if (remoteMessage.getData().size() > 0) {
Log.e(TAG, "Data Payload: " + remoteMessage.getData().toString());
try {
JSONObject json = new JSONObject(remoteMessage.getData().toString());
handleDataMessage(json);
} catch (Exception e) {
Log.e(TAG, "Exception: " + e.getMessage());
}
}
}