【发布时间】:2014-09-17 05:40:05
【问题描述】:
我正在使用 (a)Smack 和 Openfire 服务器发送消息。我成功地能够使用消息正文发送消息。现在我需要在消息中发送一些额外的数据。我不想将字符串附加到数据中,然后在接收后处理它。还有其他方法吗?或带有扩展名?
【问题讨论】:
标签: android message smack asmack
我正在使用 (a)Smack 和 Openfire 服务器发送消息。我成功地能够使用消息正文发送消息。现在我需要在消息中发送一些额外的数据。我不想将字符串附加到数据中,然后在接收后处理它。还有其他方法吗?或带有扩展名?
【问题讨论】:
标签: android message smack asmack
使用自定义PacketExtension。
【讨论】:
您可以使用 setProperty 和 getProperty 方法。
发送端:
Message msg=new Message("jid", Message.Type.chat);
msg.setProperty("key", "value");
connection.sendMessage(msg);
在接收端:
PacketFilter filter = new MessageTypeFilter(Message.Type.chat);
packetListner=new PacketListener() {
public void processPacket(Packet packet) {
Message message = (Message) packet;
String myData=message.getProperty("key").toString();
}
};
connection.addPacketListener(packetListner, filter);
【讨论】: