2

サーバーからユーザーを検索したい。

検索から得た次のコードを記述します。

    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の。

何度も試しましたが、この問題は解決しません。

前もって感謝します。

4

0 に答える 0