删除名册朋友在XMPP /的Openfire(Delete a Friend from Roster

2019-08-06 18:41发布

在我的聊天应用程序。 我使用咂嘴库,订阅管理的帮助,我已经完成了添加好友到一个特定的人名册的一部分。

现在我想的是,当一些人拒绝了朋友的要求,我送一个UNSUBSCRIBE包发送给其它用户的相同,朋友不是从其他用户的名单中删除。 它只是表明无订阅。

码:

Presence unsubscribe = new Presence(Presence.Type.unsubscribe);
                unsubscribe.setTo(ABC@ABC.COM);             
                connection.sendPacket(unsubscribe);

我怎样才能删除好友名册用户。 我可以从Openfire的门户网站做,但不知道如何从代码做到这一点。

Answer 1:

从啪论坛 ,此代码的工作:

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);


Answer 2:

此代码为我工作

    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();
        }
    }


文章来源: Delete a Friend from Roster in Xmpp/Openfire