在Xmpp中拒绝请求 - 从名册中删除条目

时间:2013-03-06 07:50:55

标签: android xmpp

在XMPP中,当我向其他用户发送朋友请求时,如果其他人想要拒绝它,那么应该删除名单中的条目,但我无法从用户中删除该条目。它给我强制关闭(空指针异常)

这是我的拒绝按钮代码

btn_Deny = (Button)findViewById(R.id.btn_manageNotification_DENY);
        btn_Deny.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                Presence unsubscribe = new Presence(Presence.Type.unsubscribed);
                unsubscribe.setTo(id);              
                connection.sendPacket(unsubscribe);

                /*String message = mXmconn.removeFriend(subID, CMMStaticVariable.CommonConnection);
                System.out.println(message);*/

                Intent returnBack = new Intent(ManageNotification.this, UserMenuActivity.class);
                startActivity(returnBack);
                finish();               
            }
        });     
    }

删除朋友

public String removeFriend(String jid, XMPPConnection connection){
        roster = connection.getRoster();
        String message = "";
        try {
            RosterEntry rosterEntry = roster.getEntry("chamak@abec.info.com");
            System.out.println("rosterEntryy"+rosterEntry.toString());

            roster.removeEntry(rosterEntry);
            message = "You have denied the friend request";
        } catch (XMPPException e) {
            e.printStackTrace();
            message = "Exception";
        }
        return message;
    }

它在rosterEntry = null;

给出空指针

由于

1 个答案:

答案 0 :(得分:1)

XMPP-CORE定义服务器必须在拒绝订阅请求时从用户的名单中删除名单项。因此,当您尝试请求时,该项目甚至不应该存在。

来自规范:

  

注意:如果联系人的服务器之前已将用户添加到联系人的名单中以进行跟踪,则必须在此时删除相关项目。

您可以阅读更多here