谁能告诉我为啥 Smack 的 Presence.getMode() 在可用(在线)联系的情况下给出 null ?
Posted
技术标签:
【中文标题】谁能告诉我为啥 Smack 的 Presence.getMode() 在可用(在线)联系的情况下给出 null ?【英文标题】:Can anyone tell me why Smack's Presence.getMode() gives null in the case of available (online) contact?谁能告诉我为什么 Smack 的 Presence.getMode() 在可用(在线)联系的情况下给出 null ? 【发布时间】:2012-07-19 07:08:15 【问题描述】:我正在使用 XMPP 在 android 上开发一个聊天应用程序。当 Presence 对象包含:可用(在线)时,我检索 RosterEntery 的存在。我打电话给presence.getMode()
,它返回null。
谁能告诉我为什么presence.getMode()
在在线联系的情况下返回null?当 Presence 对象包含 : available (away) 或 (dnd) 时, Presence.getMode() 工作正常。谁能帮我解决这个问题?
【问题讨论】:
哪个 XMPP 库? 'getMode' 不是一个描述性很强的函数名称。 我使用了 Presence prs = roster.getPresence(r.getUser().toString());如果用户在线,那么它给我可用(在线)。但是当我调用 Presence.Mode pm = prs.getMode();然后它给了我 null 。谁能说出这背后的原因.. 【参考方案1】:Smack 库文档指出 -“返回存在更新的模式,如果未设置模式,则返回 null。null 存在模式值被解释为与 Presence.Mode.available 相同。”
https://www.igniterealtime.org/builds/smack/docs/latest/javadoc/org/jivesoftware/smack/packet/Presence.html#getMode%28%29
【讨论】:
以上是关于谁能告诉我为啥 Smack 的 Presence.getMode() 在可用(在线)联系的情况下给出 null ?的主要内容,如果未能解决你的问题,请参考以下文章