检查的Openfire的在线/离线用户和经销商接受好友请求使用的Andr​​oid [英] Check Online/Offline User of Openfire and auto accept friend request Using Android

查看:260
本文介绍了检查的Openfire的在线/离线用户和经销商接受好友请求使用的Andr​​oid的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的Openfire服务器机器人。现在,我需要检查有多少用户在线和他们是谁。我的连接正常。但是,当我检查它的输出是什么样子,


时调用名册条目的presence更改

名称:埃斯蒂

状态:不可用

时调用名册条目的presence更改

名称:罗尼

状态:不可用


那么如何确认谁是在线还是离线。另一个问题是如何自动接受请求。
请我需要帮助。


  

这是我的code:


 公共无效OnlineUser()
{    最终的名册sroster = connection.getRoster();    尝试{
        sroster.createEntry(埃斯蒂,罗尼,NULL);
    }赶上(XMPPException E){        e.printStackTrace();
    }
     presence presence =新的presence(presence.Type.available);
     connection.sendPacket(presence);
 // context.setConnection(Constants.connection);    //最后的名册名册= connection.getRoster();
     最后收集和LT; RosterEntry>条目= sroster.getEntries();    sroster.addRosterListener(新RosterListener(){
         @覆盖
         公共无效presenceChanged(presence presence){
           //当一个花名册条目的presence发生更改时调用
             对于(RosterEntry项:项){                    Log.v(罗尼,当一个花名册条目的presence发生更改时调用);
                         presence入门presence = sroster.get presence(entry.getUser());                         presence.Type型=条目presence.getType();
                         的uname = entry.getName()的toString()。
                         USTATUS = type.toString();
                         Log.v(罗尼,姓名+ entry.getName()的toString());
                         Log.v(罗尼,状态:+ type.toString());                 }
         }
         @覆盖
         公共无效entriesUpdated(收集和LT;弦乐>为arg0){
           //当更新名册条目调用。
             对于(RosterEntry项:项){
                    Log.v(罗尼,时调用名册条目更新);
                         presence入门presence = sroster.get presence(entry.getUser());                         presence.Type型=条目presence.getType();
                         的uname = entry.getName()的toString()。
                         USTATUS = type.toString();
                         Log.v(罗尼,Namne:+ entry.getName()的toString());
                         Log.v(罗尼,状态:+ type.toString());                 }
         }
         @覆盖
         公共无效entriesDeleted(收集和LT;弦乐>为arg0){
           //当被删除名册条目调用。
             对于(RosterEntry项:项){
                    Log.v(罗尼,当一个花名册条目被删除时调用。);
                         presence入门presence = sroster.get presence(entry.getUser());                         presence.Type型=条目presence.getType();
                         的uname = entry.getName()的toString()。
                         USTATUS = type.toString();
                         Log.v(罗尼,Namne:+ entry.getName()的toString());
                         Log.v(罗尼,状态:+ type.toString());                 }
         }
        @覆盖
         公共无效entriesAdded(收集和LT;弦乐>为arg0){
           //当加入名册条目调用。
            对于(RosterEntry项:项){
                Log.v(罗尼,当调用加入名册项目。);
                     presence入门presence = sroster.get presence(entry.getUser());                     presence.Type型=条目presence.getType();
                     的uname = entry.getName()的toString()。
                     USTATUS = type.toString();
                     Log.v(罗尼,Namne:+ entry.getName()的toString());
                     Log.v(罗尼,状态:+ type.toString());             }
         }
        });


解决方案

您使用它与LDAP?如果是这样,你可以进入用户/用户组,然后选择一个组。如果启用联系人列表组共享它应该做的伎俩。

打开联系人列表群共享。
看到我的详细信息截图:

希望这本书能解决你的问题。

I am using openfire server in android. Now I need to check how many users are online and who are they. My connection is OK. But when I check it the output is Look Like,


Called when the presence of a roster entry is changed

Name: esty

Status: unavailable

Called when the presence of a roster entry is changed

Name: roni

Status: unavailable


So How to check who are online or offline. Another question is how to automatic accept the request. Please I need help.

Here Is My code:

public void OnlineUser()
{

    final Roster sroster = connection.getRoster();

    try {
        sroster.createEntry("esty", "roni", null);
    } catch (XMPPException e) {

        e.printStackTrace();
    }


     Presence presence = new Presence(Presence.Type.available);
     connection.sendPacket(presence);
 //  context.setConnection(Constants.connection);

    // final Roster roster =connection.getRoster();
     final Collection<RosterEntry> entries = sroster.getEntries();

    sroster.addRosterListener(new RosterListener() {
         @Override
         public void presenceChanged(Presence presence) {
           //Called when the presence of a roster entry is changed
             for (RosterEntry entry : entries) {



                    Log.v("roni", "Called when the presence of a roster entry is changed ");
                         Presence entryPresence = sroster.getPresence(entry.getUser());

                         Presence.Type type = entryPresence.getType();       
                         uName =entry.getName().toString();
                         uStatus=type.toString();
                         Log.v("roni", "Name: " + entry.getName().toString());
                         Log.v("roni", "Status: " +type.toString());

                 }
         }
         @Override
         public void entriesUpdated(Collection<String> arg0) {
           // Called when a roster entries are updated.
             for (RosterEntry entry : entries) {


                    Log.v("roni", "Called when a roster entries are updated ");
                         Presence entryPresence = sroster.getPresence(entry.getUser());

                         Presence.Type type = entryPresence.getType();       
                         uName =entry.getName().toString();
                         uStatus=type.toString();
                         Log.v("roni", "Namne: " + entry.getName().toString());
                         Log.v("roni", "Status: " +type.toString());

                 }
         }
         @Override
         public void entriesDeleted(Collection<String> arg0) {
           // Called when a roster entries are removed.
             for (RosterEntry entry : entries) {


                    Log.v("roni", "Called when a roster entries are removed. ");
                         Presence entryPresence = sroster.getPresence(entry.getUser());

                         Presence.Type type = entryPresence.getType();       
                         uName =entry.getName().toString();
                         uStatus=type.toString();
                         Log.v("roni", "Namne: " + entry.getName().toString());
                         Log.v("roni", "Status: " +type.toString());

                 }
         }
        @Override
         public void entriesAdded(Collection<String> arg0) {
           // Called when a roster entries are added.
            for (RosterEntry entry : entries) {


                Log.v("roni", " Called when a roster entries are added. ");
                     Presence entryPresence = sroster.getPresence(entry.getUser());

                     Presence.Type type = entryPresence.getType();       
                     uName =entry.getName().toString();
                     uStatus=type.toString();
                     Log.v("roni", "Namne: " + entry.getName().toString());
                     Log.v("roni", "Status: " +type.toString());

             }
         }
        });

解决方案

Are you using it with LDAP? If so, you can go into Users/Groups and then select a group. If you enable Contact list group sharing it should do the trick.

"Enable contact list group sharing". See my screenshot for details:

Hope it will solve your problem.

这篇关于检查的Openfire的在线/离线用户和经销商接受好友请求使用的Andr​​oid的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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