我正在使用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();
}
但我无法将其保存到磁盘(外部),谷歌搜索并没有真正帮助。
你能在这里找个帮忙吗?感谢答案 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,最后以图像的形式将其保存在内部存储中。对我来说同样的方法工作正常。 希望这有效。