从服务器搜索用户,用户是否退出

时间:2012-08-06 13:38:55

标签: android xmpp asmack

我想从服务器搜索用户。

我在搜索时编写了以下代码。

    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类的

我尝试了很多次,但没有解决这个问题。

提前致谢。

0 个答案:

没有答案