0

私のチャットアプリケーションには、ユーザーのプレゼンス/モードステータス、つまりオンライン、オフライン、非表示、離席などを設定する手順があります。次のコードを使用してこれを行っています:-

presence = new Presence(Presence.Type.available);

            if (USER_STATE.equalsIgnoreCase("Online")) {
                presence.setMode(Presence.Mode.available);
                setUserPresence(0);
            }else if (USER_STATE.equalsIgnoreCase("Invisible")) {
                presence.setMode(Presence.Mode.xa);
                setUserPresence(1);
            } else if (USER_STATE.equalsIgnoreCase("Away")) {
                presence.setMode(Presence.Mode.away);
                setUserPresence(2);
            } else if (USER_STATE.equalsIgnoreCase("Busy")) {
                presence.setMode(Presence.Mode.dnd);
                setUserPresence(3);
            }

ここで、ユーザー プレゼンスを [退席中] または [非表示] などに設定し、ユーザーをログアウトします。ユーザーが再度ログインしたときに、前回のログアウト以降に設定したユーザーのモードを取得したいと考えています。私はそれを次のように取得しています:-

System.out.println("Loggeddd innn");
            // Set presence to online!
            Presence userPresence = new Presence(Presence.Type.available);
            userPresence.setStatus("Hello CCM!");
            userPresence.setPriority(24);
            userPresence.setMode(userPresence.getMode());
            connection.sendPacket(userPresence);

ここでは常に NULL をuser.getMode()取得し、ステータスも常に利用可能として取得します (openfire ポータルに表示)

誰でも助けてください?

4

1 に答える 1