2012-04-02 9 views
1

Я создал пользователя на странице администратора openfire. Я ввел имя пользователя, NAME, адрес электронной почты, пароль.Как получить имя текущего пользователя в smack

Я пишу клиент в Android. Как я могу получить имя пользователя текущего пользователя? Я пробовал: (1) connection.getuser() - возвращает: [email protected]/smack (2) Получить уверенность визитки - это ничего не возвращает, связанное с именем

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

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

ответ

4

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

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

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

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

Спасибо, это то, что я хочу сделать –

+1

Кроме того, я хочу, чтобы получить статус текущего пользователя, а не пользователей в «для (RosterEntry г : entries) '. Можно ли его найти? –

+0

Прямо сейчас, из-за изменений в Smack, вместо connection.getAccountManager() следует использовать AccountManager.getInstance (соединение) –

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