检查的Openfire的在线/离线用户和经销商接受好友请求使用的Android [英] Check Online/Offline User of Openfire and auto accept friend request Using Android
问题描述
我使用的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的在线/离线用户和经销商接受好友请求使用的Android的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!