如何读取android中xmpp消息标签中添加的自定义属性?
Posted
技术标签:
【中文标题】如何读取android中xmpp消息标签中添加的自定义属性?【英文标题】:How to read custom attributes added in message tag of xmpp in android? 【发布时间】:2014-10-24 06:29:44 【问题描述】:正在发送的XMPP
消息在消息标签中添加了一些自定义属性,例如:
<message to = " asdf" from = "asdf" type = "chat" id="adsf" direction = "asdf" speed = "asdf">
<body>Speed</body>
</message>
正在发送的消息一切正常。但是在接收端,我不知道如何读取这些额外的属性,即 direction and speed
添加到消息标签中。我尝试制作自定义 PacketListener
但为此我需要更改整个 smack 库 bcz 每个类都连接到其他类。
【问题讨论】:
这个问题与***.com/questions/26516386重复 【参考方案1】:你不能。
永远不要向指定的流元素属性添加自定义值(例如,消息的 type 属性的新值),并且永远不要向***元素添加新属性(就像您对 msgType
、msgTimeStamp
和等等)。
这有可能破坏事物!不要这样做。另见"XEP-0134: XMPP Design Guidelines § 2.1 XMPP is Sacred"。这就是为什么在 Smack 中不可能。相反,使用自定义扩展元素,就像他的示例中显示的 xnyhps(data
元素)。另请参阅 "RFC 6120 § 8.4 Extended Content" 在 Smack 中称为 PacketExtension。
另请参阅this answer 和问题。
【讨论】:
以上是关于如何读取android中xmpp消息标签中添加的自定义属性?的主要内容,如果未能解决你的问题,请参考以下文章
我们如何在 smack 或来自 android 的 xmpp 中获得对发件人的消息读取/看到确认