在Openfire Server中使用Smack(Android)加载Vcards

在Openfire Server中使用Smack(Android)加载Vcards,第1张

概述我正在 Android平台上使用XMPP协议和Openfire服务器实现消息传递应用程序.我需要保存并加载自己的Vcard和其他用户vcard.目前,我设法将我的vCard保存在服务器上并可以再次加载它.问题在于其他用户的Vcards,服务器总是返回XMPPError:功能未实现 – 取消. 我用这个库: compile 'org.igniterealtime.smack:smack-androi 我正在 Android平台上使用XMPP协议和Openfire服务器实现消息传递应用程序.我需要保存并加载自己的Vcard和其他用户vcard.目前,我设法将我的vCard保存在服务器上并可以再次加载它.问题在于其他用户的Vcards,服务器总是返回XMPPError:功能未实现 – 取消.

我用这个库:

compile 'org.igniterealtime.smack:smack-androID:4.1.2-SNAPSHOT'compile 'org.igniterealtime.smack:smack-tcp:4.1.2-SNAPSHOT'compile 'org.igniterealtime.smack:smack-extensions:4.1.2-SNAPSHOT'

显示代码:

保存我自己的Vcard(工作正常).

VCardManager vCardManager = VCardManager.getInstanceFor(connection);VCard vCard;vCard = vCardManager.loadVCard();vCard.setNickname("User name");URL urldefault = new URL("Avatar URL");inputStream stream = urldefault.openStream();byte[] avatar1 = readBytes(stream);vCard.setAvatar(avatar1,"avatar1/jpg");vCard.setEmailHome("user email");vCard.setPhoneHome("mobile","888888888");vCardManager.saveVCard(vCard);

加载我自己的Vcard(工作正常)

VCard vCard = null;VCardManager vCardManager = VCardManager.getInstanceFor(connection);vCard = vCardManager.loadVCard();

问题出在这里.加载其他用户Vcard:

VCardManager vCardManager = VCardManager.getInstanceFor(connection);boolean isSupported = vCardManager.isSupported(user);if (isSupported)  // return true    vCard = vCardManager.loadVCard(user);

加载Vcard的用户名是正确的.

有任何想法吗?

提前致谢.

解决方法 您可能遇到的问题是JID的后缀. connection.getUser()方法将JID返回为user@example.com/Smack.要获取vCard详细信息,您需要将其查询为user@example.com(不带/ Smack).尝试一下,让我知道它是否有效. 总结

以上是内存溢出为你收集整理的在Openfire Server中使用Smack(Android)加载Vcards全部内容,希望文章能够帮你解决在Openfire Server中使用Smack(Android)加载Vcards所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1140847.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存