在android中使用xmpp从服务器获取所有注册用户[关闭]
Posted
技术标签:
【中文标题】在android中使用xmpp从服务器获取所有注册用户[关闭]【英文标题】:get all registered user from server using xmpp in android [closed] 【发布时间】:2014-05-28 10:16:59 【问题描述】:我正在为我的 android 应用程序使用 openfire 服务器。我想将所有注册用户从服务器获取到我的 android 应用程序。我正在使用 xmpp asmack 库。
这是我正在尝试的代码
UserSearchManager 搜索 = new UserSearchManager(connection);
Form searchForm,answerForm;
try
searchForm = search.getSearchForm("search."+connection.getServiceName());
answerForm = searchForm.createAnswerForm();
answerForm.setAnswer("Username", true);
answerForm.setAnswer("search", "abcd");
org.jivesoftware.smackx.ReportedData data;
data = search.getSearchResults(answerForm,"search."+connection.getServiceName());
if(data.getRows() != null)
Iterator<Row> it = data.getRows();
while(it.hasNext())
Row row = it.next();
Iterator iterator = row.getValues("jid");
if(iterator.hasNext())
String value = iterator.next().toString();
Log.i("Iteartor values......"," "+value);
//Log.i("Iteartor values......"," "+value);
catch (XMPPException e2)
// TODO Auto-generated catch block
e2.printStackTrace();
请提出任何方法
【问题讨论】:
我想要一百万……你试过什么? 我没有收到任何代码 因为你必须自己写... ***不是“为我写代码”服务 我已添加代码 This question 提供了如何在 Objective C 中执行此操作的示例。将它们转换为 Java 和 aSmack 应该相当容易。 【参考方案1】:不知怎的,我想出了答案
public List getAllUser()
List<String> l = new ArrayList<String>();
UserSearchManager search = new UserSearchManager(connection);
try
Form searchForm = search.getSearchForm("search." + connection.getServiceName());
Form answerForm = searchForm.createAnswerForm();
answerForm.setAnswer("Username", true);
answerForm.setAnswer("search", "*");
System.out.println("search form");
ReportedData data = search.getSearchResults(answerForm, "search."+connection.getHost());
if(data.getRows() != null)
System.out.println("not null");
Iterator<Row> it = data.getRows();
while(it.hasNext())
//System.out.println("row");
Row row = it.next();
Iterator iterator = row.getValues("jid");
if(iterator.hasNext())
String value = iterator.next().toString();
l.add(value);
// Log.i("Iteartor values......"," "+value);
//Log.i("Iteartor values......"," "+value);
else
System.out.println("its null");
catch (XMPPException e1)
// TODO Auto-generated catch block
e1.printStackTrace();
System.out.println("not search form");
return l;
列表 l = new ArrayList();
l = con.getAllUser();
for(int i=0;i<l.size();i++)
System.out.println(l.get(i));
【讨论】:
@RishabhSrivastava 检查是否已与 xmpp 服务器建立连接........ 你能发布错误@RishabhSrivastava 您需要提供provider manager代码。工作解决方案在这里:***.com/questions/8213812/…以上是关于在android中使用xmpp从服务器获取所有注册用户[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
xmpp ios:如何从 openfire 服务器检索所有注册用户