Я новичок в smack 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<RosterEntry> 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 всегда дают ноль
Я не могу выяснить причину этой проблемы. Пожалуйста, помогите мне решить эту проблему.
Заранее спасибо.