Невозможно получить присутствие в списке с помощью smack, openfire
Я новичок в привкус API. Я пытаюсь разработать приложение для чата, в котором я пытался настроить и получить информацию о присутствии.
Когда я меняю присутствие пользователя, он отлично работает, и это отражается на сервере Openfire.
Но когда я пытаюсь получить Присутствие пользователя, я всегда получаю статус «недоступен' даже если его присутствие в openfire показывает какимеется в наличии'.
Я использую следующий код для установки статуса.
Presence presence = new Presence(Presence.Type.available);
presence.setStatus("Online, Programmatically!");
presence.setPriority(24);
presence.setMode(Presence.Mode.available);
user.getConnection().sendPacket(presence);
Я использую класс Ростера, чтобы получить присутствие следующим образом.
Roster roster = avatar.getRoster();
Collection entries = roster.getEntries();
for(RosterEntry rosterEntry: entries) {
String user = rosterEntry.getUser();
Presence presence = roster.getPresence(user);
System.out.println("Presence : "+presence); // 1
System.out.println("Presence type: "+presence.getType()); // 2
System.out.println("Presence mode: "+presence.getMode()); // 3
}
Линия № 1 alwasys дает 'недоступен' в то время как строки номер 2 и 3 всегда дают ноль
Я не могу выяснить причину этой проблемы. Пожалуйста, помогите мне решить эту проблему.
Заранее спасибо.