我在通過Android中的XMPP接收郵件時遇到問題。Android:接收郵件時出現XMPP消息格式問題
發送郵件格式如下:
<?xml version="1.0" encoding="UTF-8"?>
<message xmlns="jabber:client" to="[email protected]" from="[email protected]"
type="chat" mediaType="text">
<body>Hello</body>
<mediaType>text</mediaType>
<mediaUrl />
<thumbUrl />
<from_id>1014</from_id>
<user_profile_pic>http://www..</user_profile_pic>
<user_profile_name>XYZ</user_profile_name>
<uniqueID>xsFf2ifTszKVg11ogAlgziD1IwWjcJ</uniqueID>
</message>
但我在Android的XMPP有以下格式:
<?xml version="1.0" encoding="UTF-8"?>
<message to="[email protected]" from="[email protected]/a94o853phq" type="chat">
<body>Hello</body>
<thread>61242b7c-e843-45cf-a9ff-0383ebf60aeb</thread>
<mediaType xmlns="jabber:client" />
<mediaUrl xmlns="jabber:client" />
<thumbUrl xmlns="jabber:client" />
<user_profile_pic xmlns="jabber:client" />
<user_profile_name xmlns="jabber:client" />
<uniqueID xmlns="jabber:client" />
<from_id xmlns="jabber:client" />
</message>
發送短消息代碼:
DefaultExtensionElement extXMPPMessage = new DefaultExtensionElement("message", "jabber:client");
extXMPPMessage.setValue("to", toUser);
extXMPPMessage.setValue("from", fromUser);
extXMPPMessage.setValue("body", message);
extXMPPMessage.setValue("type", type);
extXMPPMessage.setValue("mediaType", mediaType);
extXMPPMessage.setValue("mediaUrl", mediaURL);
extXMPPMessage.setValue("thumbUrl", thumbURL);
extXMPPMessage.setValue("from_id", from_id);
extXMPPMessage.setValue("user_profile_pic", user_profile_pic);
extXMPPMessage.setValue("user_profile_name", user_profile_name);
extXMPPMessage.setValue("uniqueID", uniqueID);
Message msg = new Message();
msg.setType(Message.Type.chat);
msg.setTo(toUser);
msg.setFrom(fromUser);
msg.setBody(message);
msg.addExtension(extXMPPMessage);
chat.sendMessage(msg); //chat is Object of Chat class
我能接受接口方法中的消息:
@Override
public void processMessage(Chat chat, Message message) {
Log.e(TAG, "ProcessMessage Message received " + message.toString());
}
我不知道什麼是問題,我得到了完美的身體,也是我成功接收消息,但mediaType,用戶名,用戶配置文件每個標籤都變空了,請幫助我。謝謝。
哪個版本嫌你使用mediaUrl等? – SANAT
Hi @SANAT,Smack 4.1.4版本 –
將消息從android傳遞給android時發生了什麼? – SANAT