保存asmack Vcard头像

时间:2014-05-29 11:05:49

标签: java android asmack

我正在使用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();
}

但我无法将其保存到磁盘(外部),谷歌搜索并没有真正帮助。

你能在这里找个帮忙吗?感谢

1 个答案:

答案 0 :(得分:0)

try {
  vcard.load(connection,  ""+senderusername+"@"+SERVICE_NAME);
  byte[] senderimage = vcard.getAvatar();
} catch (Exception e) {
                  e.printStackTrace();}

好像你没有正确加载VCard。 用sendername +" @" + SERVICE_NAME替换sendername,如上所示。

获取用户的图像字节数组后,您可以轻松地将其转换为String,然后转换为Base64,最后以图像的形式将其保存在内部存储中。对我来说同样的方法工作正常。 希望这有效。