2012-10-23 3 views
2

Dans mon application de discussion, je souhaite mettre en œuvre la fonctionnalité de discussion de groupe. Pour le même je veux créer des salles et envoyer les invitations à mes amis pour rejoindre la salle. Voici mon code pour rejoindre et inviter l'ami à la pièce.Invitation de salle XMPP

Pour créer l'invitation Pour recevoir l'ai-je mis en place un Listener d'invitation dans ma classe de service en chambre

//Create Room 
    btn_CreateRoom = (Button)findViewById(R.id.btn_usermenu_CreateRoom); 
    btn_CreateRoom.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 

      try { 
       muc = new MultiUserChat(connection, "[email protected]"); 

       muc.join("Sunil","123456"); 
       muc.sendConfigurationForm(new Form(Form.TYPE_SUBMIT)); 

      } catch (XMPPException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

      System.out.println("Room Created"); 
     } 
    }); 


    btn_Invite = (Button)findViewById(R.id.btn_usermenu_InviteToRoom); 
    btn_Invite.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 


      muc.invite("[email protected]", "Please join this room"); 



     } 
    }); 

} 

. Mais je suis incapable de recevoir l'invitaion par notification. Wats le problème avec le code.

Voici mon écouteur d'invitation.

MultiUserChat.addInvitationListener(connection, new InvitationListener() { 

      @Override 
      public void invitationReceived(Connection arg0, String arg1, String arg2, 
        String arg3, String arg4, Message arg5) { 
       // TODO Auto-generated method stub 

       System.out.println("Received??"); 
       notification("Invitation Received"); 

Faites-moi savoir pourquoi je ne reçois pas l'invitation.

Merci

+0

vous pouvez faire l'exploitation forestière de connaître l'état; où votre code bloque et si l'écouteur reçoit le rappel du serveur (c'est-à-dire de la pièce à rejoindre) et le thread client est prêt à recevoir l'invitation. –

+1

Le vide statique principal est droit. U devrait effectuer le débogage et identifier le problème afin que nous puissions aider –

+0

@SherazKhilji Oui l'invitation est envoyée et j'ai écrit mon écouteur d'invitation dans la classe de service. L'invitation est simplement envoyée. mais ce n'est pas du tout reçu. Je l'ai débogué. –

Répondre

0

Vous pouvez essayer

public class myclass extends Activity implements InvitationListener{ 
@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
       MultiUserChat.addInvitationListener(Connection,myclass.this); 
} 
@Override 
    public void invitationReceived(Connection conn, final String room, 
      String inviter, String reason, String password, Message message) { 

     Log.e("inviter", inviter); 
     Log.e("message", message.getBody()); 
     Log.e("reason", reason); 
     Log.e("room", room); 

    } 
} 

Cela pourrait résoudre votre problème.

+0

maintenant comment rejoindre le groupe? –

+0

@AnjaliTripathi vous pouvez le faire comme ceci MultiUserChat muc = new MultiUserChat (conn, room); muc.join ("Mon pseudo"); –

+0

Je l'ai fait que vous pouvez voir dans mon code .. –

0

Nous avons manqué Discussion ici:

Il suffit d'ajouter ci-dessous le code pour rejoindre le groupe:

private void setChatRoomInvitationListener() { 
     Thread thread = new Thread(new Runnable() { 
      @Override 
      public void run() { 
       MultiUserChat.addInvitationListener(xmppConnection, new InvitationListener() { 
        @Override 
        public void invitationReceived(Connection connection,String room, String inviter, String reason,String unKnown, Message message) { 
         XMPPConnectionUtils.configureChatStandards(); 
         MultiUserChat muc = new MultiUserChat(connection, room); 
         try { 
          muc.join("My_Name_Here"); 
         } catch (XMPPException e) { 
          e.printStackTrace(); 
         } 
        } 
       }); 
      } 
     }); 
     thread.start(); 
    } 

Espérons que cela vous aidera beaucoup.

2

vous écrire ce code après xmppconnection.connect()

MultiUserChatManager.getInstanceFor(connection).addInvitationListener(new InvitationListener() { 
        @Override 
        public void invitationReceived(XMPPConnection conn, MultiUserChat room, String inviter, String reason, String password, Message message) { 
         MultiUserChatManager manager = MultiUserChatManager.getInstanceFor(conn); 
         try { 
          room.join("pandian"); 
         } catch (SmackException.NoResponseException e) { 
          e.printStackTrace(); 
         } catch (XMPPException.XMPPErrorException e) { 
          e.printStackTrace(); 
         } catch (SmackException.NotConnectedException e) { 
          e.printStackTrace(); 
         } 
        } 


       }); 

son travail pour moi ..try il

Questions connexes