簡體   English   中英

如何使用Android上的Smack讓Openfire XMPP服務器上的所有用戶?

[英]How to get all user on openfire xmpp server using smack on android?

我正在使用smack和openfire在android中開發聊天應用程序,現在我面臨顯示所有用戶列表的問題,以便可以邀請這些用戶聊天,我嘗試使用以下代碼使用名冊,但名冊條目大小始終為零。 當我正確登錄后。以下是我的代碼段。

Roster roster =Roster.getInstanceFor(xmppConnection);
        Collection<RosterEntry> entries = roster.getEntries();
        for (RosterEntry entry : entries) {
            System.out.println(entry);
        }

這是因為花名冊需要一段時間才能加載。 您可以:

  1. 使用RosterLoadedListener
  2. 重新加載並等待: if (!roster.isLoaded()) roster.reloadAndWait();
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());
            }
        }
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM