gpt4 book ai didi

java - 我如何从好友图像更改 Xmpp android 获得通知

转载 作者:行者123 更新时间:2023-11-30 03:23:49 25 4
gpt4 key购买 nike

我正在尝试开发一个 Xmpp 客户端并显示带有图像的好友列表。我将图像存储在缓存目录中以便快速检索和不必要的网络使用。这里的问题是如果好友更改了他的图像我如何得到通知获取来自服务器的新图像,而不是来自本地缓存。请提出建议。

我正在使用 asmack api。

最佳答案

private static XMPPConnection connection;

// If any changes occured in buddylist
connection.getRoster().addRosterListener(new RosterListener() {

@Override
public void presenceChanged(Presence arg0) {

}

@Override
public void entriesUpdated(Collection<String> arg0) {

}

@Override
public void entriesDeleted(Collection<String> arg0) {

}

@Override
public void entriesAdded(Collection<String> arg0) {

}
});

获取用户列表

private ArrayList<HashMap<String, String>> getUserList() throws Exception {

ArrayList<HashMap<String, String>> userList = new ArrayList<HashMap<String, String>>();
if (isConnectionAlive() || reConnectAndAuth()) {
Roster roster = connection.getRoster();
Collection<RosterEntry> entries = roster.getEntries();
for (RosterEntry entry : entries) {
String avatarPath = "";
VCard vCard = new VCard();
try {
vCard.load(connection, entry.getUser());
vCard.getExtensions();
byte[] b = vCard.getAvatar();
Bitmap avatar = BitmapFactory.decodeByteArray(vCard.getAvatar(), 0, b.length);
avatarPath = savaAvatar(avatar, entry.getUser());
} catch (Exception e) {
}

HashMap<String, String> user = new HashMap<String, String>();
user.put("name", entry.getName());
user.put("userid", entry.getUser());
user.put("statusMsg", "" + entry.getStatus());
user.put("user_avatar", avatarPath);
user.put("status", "" + connection.getRoster().getPresence(entry.getUser()).isAvailable());
userList.add(user);
}
}
return userList;
}

关于java - 我如何从好友图像更改 Xmpp android 获得通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18613035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com