私は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 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 は常に「使用不可」を返しますが、行番号 2 と 3 は常に null を返します
この問題の原因を突き止めることができません。この問題を解決するのを手伝ってください。
前もって感謝します。