使用asmack从Openfire服务器获取所有用户到android

时间:2015-01-06 06:08:38

标签: android xmpp openfire asmack

我正在Android上创建一个聊天应用程序,并使用asmack库进行openfire xmpp。我被困在从服务器获取所有用户。我尝试了很多代码,但没有一个像我想要的那样工作。我需要在服务器上执行的操作是手动将用户添加到组中,然后使用

private ArrayList<String> getAllUsers(int num) {

    ArrayList<String> users = new ArrayList<String>();
    Roster roster = connection.getRoster();

    System.out.println("**Number Users: " + roster.getEntryCount());
    Collection<RosterEntry> entries = roster.getEntries();
    for (RosterEntry entry : entries) {
        users.add(entry.getName());
        System.out.println("User: " + entry.getName());
    }
    System.out.println("**Number Users: " + roster.getEntryCount());

    return users;
}

让用户进入我亲自创建的群组。我想得到的是openfire上可用的所有用户,或者是在openfire上将用户添加到特定组的方法。我怎么能这样做?

如果我可以通过使用组来获取用户,那么如何动态地将用户添加到特定组?

1 个答案:

答案 0 :(得分:0)

使用Roaster,如下所示。

        Roster roster = Roster.getInstanceFor(connection);
        Collection<RosterEntry> entries = roster.getEntries();
        for (RosterEntry rosterEntry : entries){

            System.out.println("xmpp.Roster.user "+ rosterEntry.getUser());
            System.out.println("xmpp.Roster.type "+ rosterEntry.getType().name());
            System.out.println("xmpp.Roster.presence "+ roster.getPresence(rosterEntry.getUser()).getType());
        }