在我的聊天应用程序中。我正在使用smack库,在Subscription Management的帮助下,我已经完成了将朋友添加到特定人员名单中的部分。
现在我希望当有人拒绝朋友请求时,我发送一个UNSUBSCRIBE PACKET给其他用户,同样,朋友不会从其他用户的名单中删除。它只显示NONE订阅。
CODE:
Presence unsubscribe = new Presence(Presence.Type.unsubscribe);
unsubscribe.setTo(ABC@ABC.COM);
connection.sendPacket(unsubscribe);
如何从朋友的名单中删除用户。我可以从openfire门户网站上做到这一点,但不知道如何从代码中做到这一点。
答案 0 :(得分:5)
从Smack forum开始,此代码可能有效:
RosterPacket packet = new RosterPacket();
packet.setType(IQ.Type.SET);
RosterPacket.Item item = new RosterPacket.Item("ABC@ABC.COM", null);
item.setItemType(RosterPacket.ItemType.REMOVE);
packet.addRosterItem(item);
connection.sendPacket(packet);
答案 1 :(得分:1)
这段代码对我有用
if(selectedRoster != null) {
Presence presence = new Presence(Presence.Type.unsubscribe);
presence.setTo(selectedRoster.getUser());
presence.setStatus("Offline");
presence.setShow("unavailable");
ConnectionController.GetInstance(this).getXMPPConnection().sendPacket(presence);
try {
roster.removeEntry(selectedRoster);
} catch (XMPPException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}