我正在使用smack和openfire在android中开发聊天应用程序,现在我面临着显示所有用户列表的问题,以便可以邀请这些用户进行聊天,我尝试使用下面的代码使用名单,但是名单条目大小总是零。我正确登录时。以下是我的代码段。
Roster roster =Roster.getInstanceFor(xmppConnection);
Collection<RosterEntry> entries = roster.getEntries();
for (RosterEntry entry : entries) {
System.out.println(entry);
}
答案 0 :(得分:1)
这是因为名单需要一段时间才能加载。你可以:
if (!roster.isLoaded()) roster.reloadAndWait();
答案 1 :(得分:0)
Roster roster = Roster.getInstanceFor(connection_obj);
roster.addRosterLoadedListener(new RosterLoadedListener() {
@Override
public void onRosterLoaded(Roster roster) {
Set<RosterEntry> entries = roster.getEntries();
for (RosterEntry entry : entries) {
Log.d("XMPPChatDemoActivity", "Name: "+entry.getName());
Log.d("XMPPChatDemoActivity", "Id: " + entry.getUser());
Presence entryPresence =roster.getPresence(entry.getUser());
Log.d("XMPPChatDemoActivity", "Presence Status: " + entryPresence.getStatus());
Log.d("XMPPChatDemoActivity", "Presence Type: " + entryPresence.getType());
}
}
});