サーバーからユーザーを検索したい。
検索から得た次のコードを記述します。
pm.addIQProvider("query","jabber:iq:search", new UserSearch.Provider());
UserSearchManager search = new UserSearchManager(connection);
Form searchForm = search.getSearchForm("search."+connection.getServiceName());
Form answerForm = searchForm.createAnswerForm();
answerForm.setAnswer("Username", true);
Toast.makeText(this,username.getText().toString(),Toast.LENGTH_SHORT).show();
answerForm.setAnswer("search", username.getText().toString());
ReportedData data = search.getSearchResults(answerForm,"search."+connection.getServiceName());
if(data.getRows() != null)
{
Toast.makeText(this,"Username Exists",Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(this,"Username Available",Toast.LENGTH_SHORT).show();
}
しかし、クラスキャスト例外をスローします
Form searchForm = search.getSearchForm("search."+connection.getServiceName());
この行で。
私はすでにasmack-android-5.jar libのソースコードをダウンロードしています。この行に例外が見つかりました
// Check if the existing DataForm is not a result of a search
DataForm dataForm = (DataForm) packetExtension;
ソースコード側のクラスorg.jivesoftware.smackx.Formの。
何度も試しましたが、この問題は解決しません。
前もって感謝します。