如何读取android中xmpp的message标签中添加的自定义属性?

时间:2014-10-24 06:29:44

标签: android xml-parsing xmpp smack

发送的XMPP消息在消息标记中添加了一些自定义属性,如:

<message to = " asdf" from = "asdf" type = "chat" id="adsf" direction = "asdf" speed = "asdf">
<body>Speed</body>
</message>

正在发送的消息都很好。但是在收到结束时,我不知道如何阅读这些额外的属性,即在消息标记中添加 direction and speed 。我尝试自定义 PacketListener ,但为此我需要更改整个smack库bcz,每个类都连接到其他类。

1 个答案:

答案 0 :(得分:0)

你不能。

永远不要将自定义值添加到指定的流元素属性(例如,消息的type属性的新值),并且永远不要将新属性添加到顶级元素(就像您使用msgType所做的那样,{{ 1}}等等。

这有可能打破局面!不要这样做。另见"XEP-0134: XMPP Design Guidelines § 2.1 XMPP is Sacred"。这就是Smack无法实现的原因。相反,使用自定义扩展元素,如xnyhps在其示例中显示的(msgTimeStamp元素)。另请参阅"RFC 6120 § 8.4 Extended Content"这些在Smack中称为PacketExtension

另见this answer和问题。