Openfireサーバーとasmackライブラリを使用しているチャットアプリケーションを開発しています。そのサーバーに登録されているユーザーを検索したい。
ここに私が書いたコードがあります..
UserSearchManager search = new UserSearchManager(connection);
try {
Log.d("JWP", "cc:"+connection.getServiceName());
org.jivesoftware.smackx.Form searchForm = search.getSearchForm("search."+connection.getServiceName());
org.jivesoftware.smackx.Form answerForm = searchForm.createAnswerForm();
answerForm.setAnswer("Username", true);
answerForm.setAnswer("search", editTextSearch.getText().toString());
org.jivesoftware.smackx.ReportedData data;
data = search.getSearchResults(answerForm,"search."+connection.getServiceName());
if(data.getRows() != null){
Iterator<org.jivesoftware.smackx.ReportedData.Row> it = data.getRows();
while(it.hasNext()){
org.jivesoftware.smackx.ReportedData.Row row = it.next();
Iterator iterator = row.getValues("jid");
if(iterator.hasNext()){
String value = iterator.next().toString();
Log.i("Iteartor values......"," "+value);
}
}
Toast.makeText(Welcome.this,"Username Exists",Toast.LENGTH_SHORT).show();
}
}
catch (XMPPException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
しかし、ここで getSerachFrom() メソッドは null 値を返し、さまざまなことを試しましたが、なぜこれが起こっているのかわかりません。登録ユーザー数を持つ私のopenfireサーバー。