Guida allo sviluppo

Local Navigation

Invio di un messaggio a un contatto

Prima di iniziare: Completare l'attività Registrazione dell'applicazione con la piattaforma BlackBerry Messenger. Verificare che la classe che visualizza la schermata nell'esempio di codice seguente passi un riferimento all'oggetto BBMPlatformContext associato all'applicazione.
  1. Importare le classi e le interfacce richieste.
    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. Creare una classe che estenda MainScreen. Nel costruttore di questa classe Screen, passare l'oggetto BBMPlatformContext associato all'applicazione.
    public class MyBBMScreen extends MainScreen
    {
        public MyBBMScreen(BBMPlatformContext platformContext)
        {
        }
    }
  3. Dichiarare un'istanza di BBMPlatformChannel come variabile di appartenenza della classe MyBBMScreen.
    public class MyBBMScreen extends MainScreen
    {
        BBMPlatformChannel _channel;
        public MyBBMScreen(BBMPlatformContext platformContext)
        {
        }
    }
  4. Nel costruttore MyBBMScreen, recuperare un'istanza del servizio di messaggistica.
    public MyBBMScreen(BBMPlatformContext platformContext)
    {
        MessagingService myMessagingService = platformContext.getMessagingService();
    }
  5. Creare un canale passando un'istanza di BBMPlatformChannelListener che verrà definita nel passaggio 9.
    public MyBBMScreen(BBMPlatformContext platformContext)
    {
        MessagingService myMessagingService = platformContext.getMessagingService();
        _channel = messagingService.createChannel(_channelListener);
    }
  6. Invitare un contatto all'applicazione. Nei parametri per sendInvitation(), è possibile specificare un messaggio da recapitare quando il contatto riceve l'invito, un parametro che verrà passato al metodo principale dell'applicazione come args[1] e un'ora di scadenza. Nell'esempio di codice seguente viene passato il valore 0 come ora di scadenza (ovvero, l'invito non scade mai). Un componente selettore dei contatti dell'interfaccia utente si apre per consentire all'utente di scegliere un contatto da invitare.
    public MyBBMScreen(BBMPlatformContext platformContext)
    {
        MessagingService messagingService = platformContext.getMessagingService();
        _channel = messagingService.createChannel(_channelListener);
        _channel.sendInvitation("Let's play a game", "Chess App", 0);
    }
  7. Nella classe MyBBMScreen, definire un metodo helper, onContactJoined(), che verrà richiamato dal metodo di richiamata BBMPlatformChannelListener.contactJoined(). Passare un riferimento al contatto che si è appena unito.
    public class MyBBMScreen extends MainScreen
    {
        BBMPlatformChannel _channel;
        public MyBBMScreen(BBMPlatformContext platformContext)
        {
            //code from steps 5 to 7    
        }
        private onContactJoined(BBMPlatformContact contact)
        {
        }
    }
  8. Nel metodo onContactJoined(), creare un messaggio, aggiungerlo a un oggetto BBMPlatformData e, in un blocco try-catch, inviare il messaggio. Nell'esempio di codice seguente, viene inviato il messaggio a tutti i contatti del canale che informa che un partecipante ha abbandonato il gioco.
    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. Nella classe MyBBMScreen, definire il listener del canale, _channelListener come classe interna privata. Nel metodo contactJoined(), richiamare il metodo onContactJoined() passando BBMPlatformContact che si è appena unito.
    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) 
            {
            }
       			  }
        };
    }

Le informazioni sono state utili? Inviateci i vostri commenti.