2016-01-13 18 views
0

我想在ejabberd(15.11)和sma(4.1.5)在android上建立聊天。smack UserSearchManager与ejabberd

发送订阅节前我想检查该用户是否通过检查我的服务器上存在如果JID已在使用中:

UserSearchManager userSearchManager = new UserSearchManager(connection); 
    Form searchForm = userSearchManager.getSearchForm("vjud." + connection.getServiceName());  
    Form answerForm = searchForm.createAnswerForm(); 
    answerForm.setAnswer("user", userName + "@" + connection.getServiceName()); 
    ReportedData data = userSearchManager.getSearchResults(answerForm, "vjud." + connection.getServiceName()); 

我得到多列从我的服务器,但没有行 - 意味着没有数据。 如果我只取用户名或Jid,无所谓。

我除了使用密码注册用户以外,没有别的办法,所以没有设置firstname或类似的东西。

有人可以告诉我我做错了什么或最好的地方在哪里查找设置答案参数?我搜查了很多,但找不到任何帮助。

回答

0

Jabber用户目录基于Vcard。无法通过用户目录搜索没有Vcard的用户。这意味着确实,注册用户不足以使其出现在Jabber搜索目录中。

+0

是否有办法自动将第一部分jid(@之前的所有内容)添加到Vcard? – Agyss