【发布时间】:2014-01-26 06:46:54
【问题描述】:
我正在使用 xmpp 和 smack api 在 android 中编写一个聊天应用程序。当我输入特定朋友的电子邮件 ID 以发送聊天时,聊天工作成功。但我无法获取离线/在线用户列表。请建议如何使用 xmpp smack 获取用户列表 ..?
【问题讨论】:
我正在使用 xmpp 和 smack api 在 android 中编写一个聊天应用程序。当我输入特定朋友的电子邮件 ID 以发送聊天时,聊天工作成功。但我无法获取离线/在线用户列表。请建议如何使用 xmpp smack 获取用户列表 ..?
【问题讨论】:
您必须创建一个 listView 以获取用户列表并尝试此代码
public static ArrayList<HashMap<String, String>> usersList=new ArrayList<HashMap<String, String>>();
Presence presence = new Presence(Presence.Type.available);
Constants.connection.sendPacket(presence);
setConnection(Constants.connection);
final Roster roster = Constants.connection.getRoster();
Collection<RosterEntry> entries = roster.getEntries();
for (RosterEntry entry : entries) {
HashMap<String, String> map = new HashMap<String, String>();
Presence entryPresence = roster.getPresence(entry.getUser());
Presence.Type type = entryPresence.getType();
map.put("USER", entry.getName().toString());
map.put("STATUS", type.toString());
Log.e("USER", entry.getName().toString());
usersList.add(map);
}
然后将您的 userList 添加到您的 ListAdapter 并检查 STATUS 是否等于 'avialable' 然后用户在线,否则用户离线。
【讨论】: