Roster.getEntries 用 asmack 返回 0

Roster.getEntries returning 0 with asmack

我创建了一个sendchat短信,但是我无法使用花名册方法获取其他用户的状态。

Roster roster = connection.getRoster();

                Log.e("entry count",""+roster.getEntryCount());

                Collection<RosterEntry> entries = roster.getEntries();
                Log.e("Roster Entries",""+roster.getEntries().size());
                for (RosterEntry entry : entries) {
                    Presence.Type type = entryPresence.getType();
                    if (type == Presence.Type.available)
                        Log.e("XMPPChatDemoActivity", "Presence AVIALABLE");                
                }



            } catch (XMPPException ex) {

                setConnection(null);

}

您需要添加:

If(!Roster.IsLoaded()) 
   Roster.reloadAndWait();

行前:

Collection<RosterEntry> entries = roster.getEntries();

没有将用户添加到花名册列表。仅将用户添加到花名册列表后,我们可以获取用户详细信息。