XMPP aSmack - 如何获得当前用户状态(离线/在线/距离/等。)?在线、离线、如何获得、距离

2023-09-03 21:54:52 作者:真心不如红钞票

我是新来的XMPP / asmack android系统。

I am new to xmpp/asmack in android.

任何人都可以请帮我在获取用户的朋友presence(名单列表)

Can anyone please help me in getting the presence of the user's friends ( roster list)

我使用这样的:

Presence availability = roster.getPresence(user);
Mode userMode = availability.getMode();

还有什么我应该做的就是在我的名单中列出的每个用户的可用性状态。

What else should I do to get the availability status of each user listed in my roster.

推荐答案

只需使用这样的:

Presence availability = roster.getPresence(user);
Mode userMode = availability.getMode();

retrieveState_mode(availability.getMode(),availability.isAvailable());

public static int retrieveState_mode(Mode userMode, boolean isOnline) {
        int userState = 0;
        /** 0 for offline, 1 for online, 2 for away,3 for busy*/
        if(userMode == Mode.dnd) {
            userState = 3;
        } else if (userMode == Mode.away || userMode == Mode.xa) {   
            userState = 2;
        } else if (isOnline) {
            userState = 1;
        }
        return userState;
}

让我知道如果您有任何关于XMPP / asmack任何问题

Let me know if you have any problem regarding xmpp/asmack