对XMPP Asmack不太熟,刚开始用
不知道怎么获取用户朋友的presence?(名单列表)
我用下面的代码实现:
Presence availability = roster.getPresence(user);
Mode userMode = availability.getMode();
还要修改什么来获取用户的当前状态?
谢谢
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;
}
如果还不能实现请告诉我。
用这段代码:
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;
}
返回的是在线或者不在线,怎么获得,申请状态,如subscribe,unsubscribe,unsubscribed?