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

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


但是,尽管用户在线,但userPresence始终返回"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
    }
  }

08-07 13:51