Skip to content

Instantly share code, notes, and snippets.

@duanhong169
Last active December 15, 2015 08:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save duanhong169/5235205 to your computer and use it in GitHub Desktop.
Save duanhong169/5235205 to your computer and use it in GitHub Desktop.
//设置状态
private void setPresence(int code){
if(connection == null) return;
Presence presence;
switch(code){
case 0:
presence = new Presence(Presence.Type.available);
connection.sendPacket(presence);
Log.v(TAG, "设置在线");
break;
case 1:
presence = new Presence(Presence.Type.available);
presence.setMode(Presence.Mode.dnd);
connection.sendPacket(presence);
Log.v(TAG, "设置忙碌");
System.out.println(presence.toXML());
break;
case 2:
presence = new Presence(Presence.Type.available);
presence.setMode(Presence.Mode.away);
connection.sendPacket(presence);
Log.v(TAG, "设置离开");
System.out.println(presence.toXML());
break;
case 3:
Roster roster = connection.getRoster();
Collection entries = roster.getEntries();
for (RosterEntry entry : entries) {
presence = new Presence(Presence.Type.unavailable);
presence.setPacketID(Packet.ID_NOT_AVAILABLE);
presence.setFrom(connection.getUser());
presence.setTo(entry.getUser());
connection.sendPacket(presence);
System.out.println(presence.toXML());
}
//向同一用户的其他客户端发送隐身状态
presence = new Presence(Presence.Type.unavailable);
presence.setPacketID(Packet.ID_NOT_AVAILABLE);
presence.setFrom(connection.getUser());
presence.setTo(StringUtils.parseBareAddress(connection.getUser()));
connection.sendPacket(presence);
Log.v(TAG, "设置隐身");
break;
case 4:
presence = new Presence(Presence.Type.unavailable);
connection.sendPacket(presence);
Log.v(TAG, "设置离线");
break;
default: break;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment