Suscripción a la biblioteca de Android (no se muestran las notificaciones entrantes o no vinculadas)

Estoy trabajando en una aplicación de chat de Android en la que estoy usando smack library para mensajería instantánea. Todo funciona bien, pero el gran problema está en la suscripción.

Cómo enviar notificaciones de suscripción a otro usuario.

Aquí está mi código para enviar solicitud de suscripción:

public void run() {
        /*runOnUiThread(new Runnable() {
            public void run() {*/
                Roster roster = XMPPSmackConnection.getInstance().connection.getRoster();
                roster.setSubscriptionMode(Roster.SubscriptionMode.manual);
                try {
                    if(!_userName.contains("@"))
                        _userName=_userName+"@www.naijapings.net";

                    /*Presence presence = (Presence) packet;
                    Presence presence_request = new Presence(Presence.Type.subscribed);
                    presence_request.setTo(presence.getFrom());
                    presence_request.setType(Presence.Type.subscribed);
                    presence_request.setFrom("current_logged_in_user");
                    XMPPSmackConnection.getInstance().connection.sendPacket(presence_request);
                    roster.createEntry(presence.getFrom(), null, null);*/

                    /*Presence response = new Presence(Presence.Type.subscribe);
                    response.setTo(_userName);
                    XMPPSmackConnection.getInstance().connection.sendPacket(response);*/

                    //PROCESS TWO WAY COMMUNICATION
                    Presence response1 = new Presence(Presence.Type.subscribe);
                    response1.setTo(_userName);
                    XMPPSmackConnection.getInstance().connection.sendPacket(response1);
                    //////////////////////////////////////////////////////

                    //roster.createEntry(_userName, null, null);

                    /*roster.createEntry(_userName, _nickName, Friends);*/
                    //roster.createEntry(_tempUserName, null, null);
                    //roster.createEntry(_userName, _nickName, my_friends[]);
                    //addBuddy(_userName, _nickName, Friends);
                } catch (Exception e) {
                    _progDailog.dismiss();
                    e.printStackTrace();
                }
                _progDailog.dismiss();
                successAlert("Buddy requested successfully");
            /*}
        });*/

El código anterior solo crea una entrada de lista a la lista de la lista de otros usuarios pero no muestra la notificación de suscripción.

Aquí está el código para aceptar la solicitud de suscripción:

runOnUiThread(new Runnable() {
                public void run() {
                    try {
                        Roster roster = XMPPSmackConnection.getInstance().connection.getRoster();
                        ///roster.setSubscriptionMode(Roster.SubscriptionMode.manual);
                        //Presence presence = roster.getPresence(_buddyUserName);
                        roster.setSubscriptionMode(Roster.SubscriptionMode.manual);
                        //Presence subscribed = new Presence(Presence.Type.subscribed);

                        Presence response = new Presence(Presence.Type.subscribed);
                        response.setTo(_buddyUserName);
                        XMPPSmackConnection.getInstance().connection.sendPacket(response);

                        /*response = new Presence(Presence.Type.subscribed);
                        response.setTo(_buddyUserName);
                        XMPPSmackConnection.getInstance().connection.sendPacket(response);*/

                        roster.createEntry(_buddyUserName, _nickNameEditText.getText().toString(), Friends);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });

Por favor, sugiera el escenario exacto.

Respuestas a la pregunta(3)

Su respuesta a la pregunta