以下是我用于搜索在xmpp服务器中注册或不使用asmack的给定用户的代码。
UserSearchManager userSearchManager = new UserSearchManager(
connection);
Form searchForm;
try {
searchForm = userSearchManager.getSearchForm("vjud."
+ connection.getServiceName());
Form answerForm = searchForm.createAnswerForm();
answerForm.setAnswer("user", true);
answerForm.setAnswer("search", "test"); // here i'm passsing the
// Text value to search
ReportedData resultData;
resultData = userSearchManager.getSearchResults(answerForm,
"vjud." + connection.getServiceName());
Iterator<Row> it = resultData.getRows();
Row row = null;
while (it.hasNext()) {
String value = it.next().toString();
Log.i("Iteartor values......", " " + value);
System.out.println("Jabber_id :"
+ row.getValues("jid").next().toString());
System.out.println("Name :"
+ row.getValues("Name").next().toString());
row = it.next();
}
} catch (XMPPException e) {
e.printStackTrace();
}
表单answerForm = searchForm.createAnswerForm();得到NullPointerException.Anyone请提前帮助谢谢。
答案 0 :(得分:1)
您不能使用Jabber用户目录来了解用户是否已注册。 Jabber用户目录(vjud)基于用户在其Vcard中发布的信息。搜索不会匹配没有Vcard的注册用户。