2016-01-13 3 views
0

Я пытаюсь создать чат на Android с ejabberd (15.11) и smack (4.1.5).smack UserSearchManager с ejabberd

Перед отправкой подписаться 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()); 

я получаю несколько столбцов с моего сервера, но ни одна строка - означает отсутствие данных. Не имеет значения, я просто беру имя пользователя или Jid.

Я делаю не что иное, как регистрацию пользователя с паролем, поэтому первое имя или что-то в этом роде не установлено.

Может ли кто-нибудь сказать мне, что я делаю неправильно, или где лучшее место для поиска набора параметров ответа? Я много искал, но не нашел никакой помощи.

ответ

0

Jabber Пользовательский каталог основан на Vcard. Пользователи, у которых нет Vcard, не будут доступны для поиска через каталог пользователя. Это означает, что, действительно, регистрации пользователя недостаточно, чтобы он отображался в каталоге поиска Jabber.

+0

Есть ли способ автоматически добавить первую часть jid (все до @) в Vcard? – Agyss

Смежные вопросы