用户的 XMPP 名册 getPresence 状态 (java)

XMPP roster getPresence status of a user (java)

我正在使用此代码获取用户的在线状态

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

但是userPresence总是returns"unavailable"虽然用户在线。 那么我做错了什么,如何获得用户的状态?

首先尝试使用

在集合中获取 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
    }
  }