我用这个库:
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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)