Android Smack XMPP 节侦听器:缺少节属性
Posted
技术标签:
【中文标题】Android Smack XMPP 节侦听器:缺少节属性【英文标题】:Android Smack XMPP stanza listener : Missing stanza attribute 【发布时间】:2018-03-20 13:37:41 【问题描述】:这是从 api 创建的节:
<message xmlns="jabber:client" to="+60123333xxx@xxxx.xxxx.my/84947029xxx52245593xxx" from="7xxxa-3cd4-44c6-b5xxxxe5d3@xxxx.xxxx.xxxx.my">
<x xmlns="jabber:x:conference" reason="new group chat : mucduke" jid="7xxxa-3cd4-44c6-b5xxxxe5d3@xxxx.xxxx.xxxx.my"></x>
<body>new group chat : mucduke</body>
</message>
我在 android 中使用 connection.addAsyncStanzaListener(stanzaListener, stanzaFilter) 来获取节,但如果节中缺少“原因”和正文元素,则将其归属。谁能帮助我为什么会发生这种情况?
【问题讨论】:
【参考方案1】:使用以下StanzaTypeFilter
添加addSyncStanzaListener
StanzaTypeFilter filter = new StanzaTypeFilter(Message.class);
mStanzaListener = new StanzaListener()
@Override
public void processPacket(Stanza stanza) throws SmackException.NotConnectedException, InterruptedException
onMessageReceived(stanza);
;
connection.addSyncStanzaListener(mStanzaListener, filter);
获取stanza
onMessageReceived
public void onMessageReceived(Stanza stanza)
if(stanza instanceof Message)
Message msg= (Message) stanza;
msg.getBody();
...
...
【讨论】:
以上是关于Android Smack XMPP 节侦听器:缺少节属性的主要内容,如果未能解决你的问题,请参考以下文章
使用 Smack Android 将字符串转换为 XMPP 节
如何使用 Smack Android 库将 XMPP IQ 节发送到服务器?