Guia do desenvolvedor

Local Navigation

Enviar uma mensagem para um contato

Antes de começar: Execute a tarefa, Registre seu aplicativo com a plataforma do BlackBerry Messenger. Verifique se a classe que exibe a tela no modelo de código a seguir passa em uma referência ao objeto BBMPlatformContext associado ao aplicativo.
  1. Importe as classes e interfaces necessárias.
    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. Crie uma classe que estenda MainScreen. No construtor para esta classe de tela, forneça o objeto BBMPlatformContext associado do aplicativo.
    public class MyBBMScreen extends MainScreen
    {
        public MyBBMScreen(BBMPlatformContext platformContext)
        {
        }
    }
  3. Declare uma instância de BBMPlatformChannel como uma variável de membro da classe MyBBMScreen.
    public class MyBBMScreen extends MainScreen
    {
        BBMPlatformChannel _channel;
        public MyBBMScreen(BBMPlatformContext platformContext)
        {
        }
    }
  4. No construtor MyBBMScreen, recupere uma instância do serviço de mensagens.
    public MyBBMScreen(BBMPlatformContext platformContext)
    {
        MessagingService myMessagingService = platformContext.getMessagingService();
    }
  5. Crie um canal que forneça uma instância de um BBMPlatformChannelListener a ser definido na etapa 9.
    public MyBBMScreen(BBMPlatformContext platformContext)
    {
        MessagingService myMessagingService = platformContext.getMessagingService();
        _channel = messagingService.createChannel(_channelListener);
    }
  6. Convide um contato para seu aplicativo. Nos parâmetros para sendInvitation(), você pode especificar uma mensagem a ser fornecida quando o contato receber o convite, um parâmetro que será fornecido ao método principal do aplicativo como args[1] e uma hora de expiração. O exemplo de código a seguir fornece o valor 0 para hora de expiração (ou seja, o convite nunca expira). Um componente de UI do seletor de contato é aberto para o usuário escolher um contato a ser convidado.
    public MyBBMScreen(BBMPlatformContext platformContext)
    {
        MessagingService messagingService = platformContext.getMessagingService();
        _channel = messagingService.createChannel(_channelListener);
        _channel.sendInvitation("Let's play a game", "Chess App", 0);
    }
  7. Na classe MyBBMScreen, defina um método de ajuda, onContactJoined(), que o método de retorno de chamada BBMPlatformChannelListener.contactJoined() invocará. Forneça uma referência ao contato que acabou de ingressar.
    public class MyBBMScreen extends MainScreen
    {
        BBMPlatformChannel _channel;
        public MyBBMScreen(BBMPlatformContext platformContext)
        {
            //code from steps 5 to 7    
        }
        private onContactJoined(BBMPlatformContact contact)
        {
        }
    }
  8. No método onContactJoined(), crie uma mensagem, coloque-a em um objeto BBMPlatformData e, em um bloco try/catch, envie a mensagem. No seguinte modelo de código, a mensagem é enviada a todos os contatos que ingressaram no canal, informando que um participante saiu do jogo.
    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. Na classe MyBBMScreen, defina o ouvinte do canal, _channelListener, como uma classe interna privada. No método contactJoined(), invoque o método onContactJoined() fornecendo o BBMPlatformContact que acabou de ingressar.
    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) 
            {
            }
       			  }
        };
    }

Estas informações foram úteis? Gostaríamos de receber seus comentários.