如何在android中使用smack api获取聊天中的离线/在线用户列表

我正在使用xmpp和smack api在android中编写聊天应用程序。 当我输入特定朋友的电子邮件ID发送聊天时聊天工作成功。但是我无法获得离线/在线用户列表。请建议如何使用xmpp smack获取用户列表..?

您必须创建listView以获取用户列表并尝试此代码

public static ArrayList> usersList=new ArrayList>(); Presence presence = new Presence(Presence.Type.available); Constants.connection.sendPacket(presence); setConnection(Constants.connection); final Roster roster = Constants.connection.getRoster(); Collection entries = roster.getEntries(); for (RosterEntry entry : entries) { HashMap map = new HashMap(); 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’然后用户在线,否则用户处于离线状态。