2013-01-14 49 views
1

在我的聊天應用程序中。我正在使用smack庫,在訂閱管理的幫助下,我完成了爲特定人員的名冊添加朋友的部分。從Xmpp/Openfire名冊中刪除朋友

現在我希望當有人否認好友請求時,我向同一個用戶發送一個UNSUBSCRIBE PACKET,這個好友不會從其他用戶的名單中刪除。它只顯示NONE訂閱。

CODE:

Presence unsubscribe = new Presence(Presence.Type.unsubscribe); 
       unsubscribe.setTo([email protected]);    
       connection.sendPacket(unsubscribe); 

我怎樣才能從朋友名單中刪除用戶。我可以從openfire門戶網站做到,但不知道如何從代碼中完成。

+0

嗨,你有沒有找到任何解決辦法?我也得到同樣的問題。請救我 –

回答

5

Smack forum,此代碼的工作:

RosterPacket packet = new RosterPacket(); 
packet.setType(IQ.Type.SET); 
RosterPacket.Item item = new RosterPacket.Item("[email protected]", null); 
item.setItemType(RosterPacket.ItemType.REMOVE); 
packet.addRosterItem(item); 
connection.sendPacket(packet); 
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(); 
     } 
    }