XMPP ростер getPresence статус пользователя (Java)

Я использую этот код для получения статуса присутствия пользователя

   Roster roster = connection.getRoster();
   Presence userPresence = roster.getPresence(name + "@" + HOST);

Но userPresence всегда возвращается "unavailable" хотя пользователь онлайн. Так что я делаю не так, как я могу получить статус присутствия пользователя?

1 ответ

Решение

Сначала попытайтесь получить RosterEntries в Коллекцию, используя

Collection<RosterEntry> collection = roster.getEntries();

Затем попробуйте пройти каждую запись и проверить наличие

for (RosterEntry rosterEntry : collection)
  {
    Presence presence = null;
    presence = roster.getPresence(rosterEntry.getUser());

    if(presence.isAvailable())
    {
      //Do Something
    }
    else{
      //Do Something else
    }
  }
Другие вопросы по тегам