使用 asmack 设置头像
Posted
技术标签:
【中文标题】使用 asmack 设置头像【英文标题】:Setting Avatar using asmack 【发布时间】:2014-03-14 17:55:03 【问题描述】:我正在为 android 制作一个聊天应用程序,我正在使用 asmack。我的问题是如何使用 asmack 设置 v-card 头像。我正在做的事情如下,但头像没有得到保存。当我检索头像时,我得到了 null
public static void setAvatarInVCard()
urldefault=new URL("https://s3.amazonaws.com/ksr/avatars/3075521/Avatar.small.jpg");
java.io.InputStream stream = urldefault.openStream();
byte[] avatar1 = IOUtils.toByteArray(stream);
System.out.println("avatar length "+avatar1.length);
VCard vCard = new VCard();
vCard.setAvatar(avatar1, "avatar1/jpg");
vCard.save(MyService.getConnection());
当我使用 asmack 记录结果时,它发送的节如下,并且结束标签也不存在。
PM SENT (1090972696): <iq id="7hY4J-7" from="111@192.168.1.7/Smack" type="set"><vCard xmlns='vcard-temp'><PHOTO><BINVAL>/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAICAgICAQICAgIDAgIDAwYEAwMDAwcFBQQGCAcJCAgHCAgJCg0LCQoMCggICw8LDA0ODg8OCQsQERAOEQ0ODg7/2wBDAQIDAwMDAwcEBAcOCQgJDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg7/wAARCABQAFADASIAAhEBAxEB/8QAHQAAAgIDAQEBAAAAAAAAAAAABwgFBgMECQECAP/EAEIQAAEEAQMCBAMEBQcNAAAAAAECAwQFBgcREgAhCBMiMQkUQSMyUWEVFhhCkSQzNFNnccEXUmJyc4GDkqGisbXw/8QAGgEAAwADAQAAAAAAAAAAAAAABQYHAgQIA//EAC8RAAEDAgQEBAcAAwAAAAAAAAECAxEABAUhMUEGElGhExRhgSIjMnGx0fAHkfH/2gAMAwEAAhEDEQA/AGL8xe331f8AN0r3ioznKsU0VgwMYta6BJu5JiOoekrTPkN7buIjAIUlACdyt5RHBPZPqUD0z3SIeMS+xl3JsKxBcGvk5LwXayZC2kKltxWifJYQo+pKXHQpZA2BDXfseqdibhaslkGDUA4fYD
我也尝试像这样直接发送 URL
vCard.setAvatar(urldefault);
但仍然没有保存头像,log-cat结果如下。
03-14 18:06:37.199: D/SMACK(3210): 06:06:37 PM SENT (1090973048): <iq id="5SfDm-9" from="111@192.168.1.7/Smack" type="set"><vCard xmlns='vcard-temp'/>
03-14 18:06:37.289: D/SMACK(3210): 06:06:37 PM RCV (1090973048): <iq type="result" id="5SfDm-9" to="111@192.168.1.7/Smack"/>
提前感谢您的帮助。
【问题讨论】:
嗨 Fallak,最大尺寸是多少? 【参考方案1】:这张图片的大小有多大,我认为它应该在 1 mb(猜测大约)或更小的范围内,因为我面临同样的问题,并且我得到 XML Stanza 作为响应太大并且连接中断,我正在寻找最小化位图大小的选项
【讨论】:
我已经做到了。是的,问题在于图像的大小。感谢您的回答。以上是关于使用 asmack 设置头像的主要内容,如果未能解决你的问题,请参考以下文章
如何在 xmpp aSmack android 中设置个人资料图片?
asmack/Smack 4.1 on android 设置