【发布时间】: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,最大尺寸是多少?
标签: android asmack vcf-vcard avatar