Как получить имя текущего пользователя в smack - PullRequest
1 голос
/ 02 апреля 2012

Я создал пользователя со страницы администратора openfire.Я ввел имя пользователя, ИМЯ, адрес электронной почты, пароль.

Я пишу клиент в Android.Как я могу получить ИМЯ текущего пользователя?Я пытался: (1) connection.getuser () - он возвращает: peter@www.abc.com/smack (2) Получить сам vcard - он не возвращает ничего, связанного с ИМЯ

Я могу получить имядругих пользователей от RosterEntry.getName ().Но как узнать имя текущего пользователя?

Также возможно ли получить статус текущего пользователя?(например ,sence.getStatus ())

1 Ответ

4 голосов
/ 02 апреля 2012

Вы можете получить имя текущего пользователя с помощью AccountManager с помощью getAccountAttribute, а затем указать имя атрибута.В данном случае это имя ". Вот код для простой печати имени текущего пользователя

System.out.println("name = " + connection.getAccountManager().getAccountAttribute("name"));

Что касается вашего второго вопроса, вы, конечно, можете узнать присутствие других пользователей в вашем списке, используя список.getPresence. Вот простой цикл, иллюстрирующий использование этого метода

 for(RosterEntry r:entries) {
        Presence presence = roster.getPresence(r.getUser());
        System.out.println(presence.toXML());
    }
...