获取所有用户的列表针对Android的Openfire服务器 [英] Get List of all users from Openfire Server in Android

查看:262
本文介绍了获取所有用户的列表针对Android的Openfire服务器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好,我是使用XMPP和明火服务器开发在Android中聊天应用程序,

Hello i am developing a chat app in android using xmpp and open-fire for server,

目前我可以创建新的用户和与该用户登录。

currently i can create new user and login with that user.

我已经搜索了很多关于网,想尽了各种办法,但没有什么工作。

i have searched a lot of on net and tried different solutions but nothing is worked.

在服务器上的所有用户都自动加入一个默认组。当新用户获得创建。

at server all users are automatically get added to one default group. when new user get created.

但我无法得到所有用户的列表,直到我将它们添加到我的名单。

but i am unable to get list of all users until i will add them to my roster.

我的要求是显示所有用户的列表,并允许用户从他们加为好友,如何让所有的用户列出那些谁不我的朋友?

我试图获得用户组的名单,但仍然没有成功,我只能检索用户列表中的那些都是我的朋友与以下code。

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

            for(RosterEntry entry1 : entries)
            {
                System.out.println("UserID:- " + entry1.getUser());
                System.out.println("Name:- " + entry1.getName());
                System.out.println("Status:- " + entry1.getStatus());
                System.out.println("type:- " + entry1.getType());   
            }

检索组用户项我用下面的code

    Roster roster = xmppConnection.getRoster();
    Collection<RosterGroup> groups = roster.getGroups();
    for(RosterGroup group: groups )
            {
                System.out.println("Group Name:- " + group.getName());
            Collection<RosterEntry> entries = roster.getEntries();

            for(RosterEntry entry1 : entries)
            {
                System.out.println("UserID:- " + entry1.getUser());
                System.out.println("Name:- " + entry1.getName());
                System.out.println("Status:- " + entry1.getStatus());
                System.out.println("type:- " + entry1.getType());   
            }   
        }

任何帮助/解决方案或建议让所有用户列表是AP preciated。

any help/solution or suggestion to get all users list is appreciated.

感谢您。

推荐答案

以下code为我工作:

following code is working for me :

UserSearchManager usm = new UserSearchManager(connection);

Form searchForm = usm.getSearchForm("search." + connection.getServiceName());
//Here i am searching for the service name

Form answerForm = searchForm.createAnswerForm();

UserSearch userSearch = new UserSearch();
answerForm.setAnswer("Username", true);

answerForm.setAnswer("search", "*");

ReportedData data = userSearch.sendSearchForm(connection, answerForm, "search." + connection.getServiceName());

if (data.getRows() != null) {
    System.out.println("not null");

    Iterator<ReportedData.Row> it = data.getRows();

    arryAllUsers.clear();

    while (it.hasNext()) {

        //System.out.println("row");

        ReportedData.Row row = it.next();

        Iterator iterator = row.getValues("jid");

        if (iterator.hasNext()) {

            String jid = iterator.next().toString(); //here i get all the user's of the open fire..
            // l.add(value);

        }

        // Log.i("Iteartor values......"," "+value);

    }
}

这篇关于获取所有用户的列表针对Android的Openfire服务器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆