保存 asmack Vcard 头像
Posted
技术标签:
【中文标题】保存 asmack Vcard 头像【英文标题】:Saving asmack Vcard Avatars 【发布时间】:2014-05-29 11:05:48 【问题描述】:我正在使用 asmack buddycloud 库开发一个聊天应用程序,我目前遇到的问题是我可以使用此代码从用户的 vcard 接收图像:
for (RosterEntry rosterEntry : roster.getEntries())
String senderusername = rosterEntry.getUser();
String senderrealname = rosterEntry.getName();
// String sendermessage = ?????
VCard vcard = new VCard();
try
vcard.load(connection, ""+senderusername+"");
catch (XMPPException e)
// TODO Auto-generated catch block
e.printStackTrace();
// load someone's VCard
byte[] senderimage = vcard.getAvatar();
但我无法将其保存到磁盘(外部),并且谷歌搜索并没有真正帮助。
请大家帮忙看看好吗?谢谢
【问题讨论】:
aSmack 的 buddycloud 版本已有 4 年历史。我建议您尝试最新版本的 aSmack。 好吧,我发现它比休息小伙子问题少 【参考方案1】:try
vcard.load(connection, ""+senderusername+"@"+SERVICE_NAME);
byte[] senderimage = vcard.getAvatar();
catch (Exception e)
e.printStackTrace();
您似乎没有正确加载 VCard。 用 sendername+"@"+SERVICE_NAME 替换 sendername,如上所示。
得到用户的图片字节数组后,可以很方便的转换成String,然后Base64,最后以图片的形式保存在内部存储中。对我来说,同样的方法效果很好。 希望这行得通。
【讨论】:
以上是关于保存 asmack Vcard 头像的主要内容,如果未能解决你的问题,请参考以下文章