【问题标题】:Saving asmack Vcard Avatars保存 asmack Vcard 头像
【发布时间】: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。
  • 好吧,我发现它比休息小伙子问题少

标签: java android 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,最后以图片的形式保存在内部存储中。对我来说,同样的方法效果很好。 希望这行得通。

【讨论】:

    猜你喜欢
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-22
    相关资源
    最近更新 更多