Guide de développement

Local Navigation

Envoyer un message à un contact

Avant de commencer : Effectuez la tâche, Enregistrer votre application sur la plate-forme BlackBerry Messenger. Vérifiez que la classe qui s'affiche à l'écran dans l'échantillon de code suivant transmet une référence à l'objet BBMPlatformContext associé à l'application.
  1. Importez les classes et les interfaces requises.
    import net.rim.blackberry.api.bbm.platform.*;
    import net.rim.blackberry.api.bbm.platform.io.*;
    import net.rim.blackberry.api.bbm.platform.profile.*;
    import net.rim.blackberry.api.bbm.platform.service.*;
    import net.rim.device.api.ui.component.*;
  2. Créez une classe développant MainScreen. Dans le constructeur pour cette classe d'écran, transmettez l'objet BBMPlatformContext associé à l'application.
    public class MyBBMScreen extends MainScreen
    {
        public MyBBMScreen(BBMPlatformContext platformContext)
        {
        }
    }
  3. Déclarez une instance de BBMPlatformChannel comme variable de membre de la classe MyBBMScreen.
    public class MyBBMScreen extends MainScreen
    {
        BBMPlatformChannel _channel;
        public MyBBMScreen(BBMPlatformContext platformContext)
        {
        }
    }
  4. Dans le constructeur MyBBMScreen, récupérez une instance des données des services de messagerie.
    public MyBBMScreen(BBMPlatformContext platformContext)
    {
        MessagingService myMessagingService = platformContext.getMessagingService();
    }
  5. Créez un canal qui passe une instance d'un BBMPlatformChannelListener que vous définirez dans l'étape 9.
    public MyBBMScreen(BBMPlatformContext platformContext)
    {
        MessagingService myMessagingService = platformContext.getMessagingService();
        _channel = messagingService.createChannel(_channelListener);
    }
  6. Invitez un contact à votre application. Dans les paramètres pour sendInvitation(), vous pouvez spécifier un message à transmettre lorsque le contact reçoit l'invitation, un paramètre qui sera transmis à la méthode principale de l'application comme args[1] et un délai d'expiration. L'échantillon de code suivant passe la valeur 0 comme délai d'expiration (c'est-à-dire que l'invitation n'expire jamais). Un composant de l'interface utilisateur du sélecteur de contact s'ouvre pour que l'utilisateur choisisse un contact à inviter.
    public MyBBMScreen(BBMPlatformContext platformContext)
    {
        MessagingService messagingService = platformContext.getMessagingService();
        _channel = messagingService.createChannel(_channelListener);
        _channel.sendInvitation("Let's play a game", "Chess App", 0);
    }
  7. Dans la classe MyBBMScreen, définissez une méthode d'assistance, onContactJoined(), que la méthode de rappel BBMPlatformChannelListener.contactJoined() appellera. Passez une référence au contact qui vient d'adhérer.
    public class MyBBMScreen extends MainScreen
    {
        BBMPlatformChannel _channel;
        public MyBBMScreen(BBMPlatformContext platformContext)
        {
            //code from steps 5 to 7    
        }
        private onContactJoined(BBMPlatformContact contact)
        {
        }
    }
  8. Dans la méthode onContactJoined(), créez un message, encapsulez-le dans un objet BBMPlatformData et envoyez-le dans un bloc try/catch. Dans l'échantillon de code suivant, le message est envoyé à tous les contacts qui ont rejoint le canal, indiquant qu'un participant a quitté le jeu.
    private void onContactLeft(BBMPlatformContact contact)
    {
        String goodbyeMsg = contact.getDisplayName() + " has left the game.";
        BBMPlatformData data = new BBMPlatformData(goodbyeMsg);
        try {
            _channel.sendData(data, _channel.getContactList());
        }
        catch (BBMPlatformException e) 
        {
            // Error handler code
        }
    }
  9. Dans la classe MyBBMScreen, définissez l'écouteur de canal, _channelListener, comme une classe interne privée. Dans la méthode contactJoined(), appelez la méthode onContactJoined() qui passe le BBMPlatformContact qui vient de rejoindre le canal.
    public class MyBBMScreen extends MainScreen
    {
        public MyBBMScreen(BBMPlatformContext platformContext)
        {
            //code from steps 4 to 6
        }
        private void onContactJoined(BBMPlatformContact contact) 
        {
            //code from step 8
        }
        private BBMPlatformChannelListener _channelListener = new BBMPlatformChannelListener() 
        {
            public void contactsInvited(BBMPlatformConnection conn, BBMPlatformContactList 
                                         contactList) 
            {
            }
            public void contactsJoined(BBMPlatformConnection conn, BBMPlatformContactList
                                       contacts, String cookie, int type) 
            {
            }
            public void contactDeclined(BBMPlatformConnection conn, 
                                         BBMPlatformContact contact) 
            {
            }
            public void contactLeft(BBMPlatformConnection conn, BBMPlatformContact contact) 
            {
                onContactLeft(contact);
            }
            public void dataReceived(BBMPlatformConnection conn, BBMPlatformContact sender, 
                                      BBMPlatformData data) 
            {
            }
       			  }
        };
    }

Ces informations vous ont-elles été utiles ? Envoyez-nous vos commentaires.