使用asmack android添加好友的问题

时间:2014-04-21 08:01:19

标签: android asmack

我在使用asmack android接受好友请求时遇到问题。

我使用下面给出的代码块来获取传入的好友请求。

connection.addPacketListener(new PacketListener() {
    public void processPacket(Packet packet) {  
        final Presence newPresence = (Presence) packet;
    final Presence.Type presenceType = newPresence.getType();
        if (presenceType == Presence.Type.subscribe) {
            //Code to add buddy here
        }
    }
}

当用户在线时,此功能正常。但问题是当用户退出时。假设用户已注销,此时另一个用户发送好友请求。但是当用户登录时,此方法不起作用。

有人可以建议一种方法来获取用户在退出应用程序时获得的好友请求吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您好收到好友请求添加以下听众:为我完美工作

connection.getRoster().addRosterListener(rosterListener);
RosterListner rosterListner = new RosterListener(){


                @Override
                public void entriesAdded(Collection<String> clctn) {
                    System.out.println("Somebody added you");

                    for (String name : clctn) {
                        System.out.println("Somebody added you");
                        System.out.println("NAME:" + name);

                    }

                }

                @Override
                public void entriesUpdated(Collection<String> clctn) {
                    System.out.println("Somebody Updated you");

                    for (String name : clctn) {
                        System.out.println("NAME:" + name);

                    }
                }

                @Override
                public void entriesDeleted(Collection<String> clctn) {
                    System.out.println("Somebody Deleted you");

                    for (String name : clctn) {
                        System.out.println("NAME:" + name);

                    }
                }

                @Override
                public void presenceChanged(Presence prsnc) {
                    System.out.println("Somebody changed Presence");
                    //insert status msg and profile pic here into db

                }
            };