【问题标题】:Delete a Friend from Roster in Xmpp/Openfire在 Xmpp/Openfire 中从名册中删除一个朋友
【发布时间】:2013-01-14 11:26:06
【问题描述】:

在我的聊天应用程序中。我正在使用 smack 库,在订阅管理的帮助下,我完成了将朋友添加到特定人的名册的部分。

现在我希望当有人拒绝好友请求时,我向其他用户发送 UNSUBSCRIBE PACKET 相同的内容,该好友不会从其他用户的名册中删除。它只是显示 NONE 订阅。

代码:

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

如何从朋友的名册中删除该用户。我可以从 openfire 门户中做到这一点,但不知道如何从代码中做到这一点。

【问题讨论】:

  • 您好,您找到解决方案了吗?我也遇到同样的问题。请救救我

标签: android xmpp openfire


【解决方案1】:

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

【讨论】:

    【解决方案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();
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2012-05-20
      • 2013-10-21
      • 2013-02-13
      • 2023-04-02
      • 2019-09-23
      • 1970-01-01
      • 2012-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多