使用 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 设置头像的主要内容,如果未能解决你的问题,请参考以下文章

保存 asmack Vcard 头像

如何在 xmpp aSmack android 中设置个人资料图片?

asmack/Smack 4.1 on android 设置

Asmack 为 Android 设置

离线消息显示为???? , aSmack 和 openfire

无法在 Android 设备上使用 asmack 15 登录 Google Talk