使用ejabberd轻击UserSearchManager

时间:2016-01-13 19:55:25

标签: java android ejabberd smack asmack

我试图用ejabberd(15.11)和smack(4.1.5)在android上建立聊天。

在发送订阅Stanza之前,我想通过检查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());

我从服务器获取多列,但没有行 - 表示没有数据。 如果我只使用userName或Jid,那没关系。

除了使用密码注册用户之外别无其他,因此未设置名字或类似名称。

有人可以告诉我我做错了什么,或者最好的位置是查找设置答案参数?我搜索了很多,但无法找到任何帮助。

1 个答案:

答案 0 :(得分:0)

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