How to handle add request in smack API

smack

Solution

I have not tried it yet, but I guess the below should work. If using the manual mode, a PacketListener should be registered that listens for Presence packets that have a type of `Presence.Type.subscribe`.

First set the roster:

    Roster roster = connection.getRoster();
    roster.setSubscriptionMode(Roster.SubscriptionMode.manual);

Then add a packet listner to the above connection, eg :

connection.addPacketListener(new SubscriptionListener(), new PacketFilter(){

                public boolean accept(Packet packet) {
                    if(packet instanceof Presence)
                        if(((Presence)packet).getType().equals(Presence.Type.subscribe))
                            return true;
                    return false;
                }});

The above code just returns true for all requests, But you can customize it i.e set it to true or false based on user GUI input.

Problem

I use Smack API to write my Google talk Client . Now i need to handle add request for this . I set SubscriptionMode to manual & now I have to registering a listener for presence packets but i don't know how !! can any body help ?

Original source