使用asmack设置头像

时间:2014-03-14 17:55:03

标签: android asmack vcard avatar

我正在为Android制作聊天应用程序,我正在使用asmack。我的问题是如何使用asmack设置v-card头像。我正在做的是如下,但化身没有得到保存。当我收回头像我得到了

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我的logcat结果时发送的节如下,结束标签也不存在。

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

我也尝试像这样直接发送网址

vCard.setAvatar(urldefault);

但仍然没有保存头像的日志猫结果如下。

    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"/>

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

这个图像的大小有多大,我认为它应该在1 mb(猜猜大约)或更小的范围内,因为我面临同样的问题,我得到XML Stanza太大了作为回应和连接中断,我正在查看最小化位图大小的选项