2 sachinks SachinKS 于 2013.01.22 16:16 提问

android中XMPP Asmack的问题

对XMPP Asmack不太熟,刚开始用

不知道怎么获取用户朋友的presence?(名单列表)

我用下面的代码实现:

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

还要修改什么来获取用户的当前状态?

谢谢

3个回答

Kill_it
Kill_it   2013.01.22 17:09
已采纳
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;
        }

如果还不能实现请告诉我。

u013339223
u013339223 返回的是在线或者不在线,怎么获得,申请状态,如subscribe,unsubscribe,unsubscribed?
大约 3 年之前 回复
Kakalapa1986
Kakalapa1986   2013.01.22 16:58

用这段代码:

userFromServer = con.getRoster().getPresence(userID);
userState = retrieveState(userFromServer.getMode(), userFromServer.isAvailable());

public int retrieveState(Mode userMode, boolean isOnline) {
    int userState = XmppFriend.OFFLINE; // default return value
    if (userMode == Mode.dnd) {
        userState = XmppFriend.BUSY;
    } else if (userMode == Mode.away || userMode == Mode.xa) {
        userState = XmppFriend.AWAY;
    } else if (isOnline) {
        userState = XmppFriend.ONLINE;
    }
    return userState;
}
u013339223
u013339223   2015.01.16 15:10

返回的是在线或者不在线,怎么获得,申请状态,如subscribe,unsubscribe,unsubscribed?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!