Entwicklungshandbuch

Local Navigation

Senden einer Nachricht an einen Kontakt

Vor Beginn erforderliche Aktion: Führen Sie die Aufgabe Registrieren Ihrer Anwendung bei der BlackBerry Messenger-Plattform aus. Vergewissern Sie sich, dass die Klasse, die im folgenden Codebeispiel den Bildschirm anzeigt, einen Verweis auf das BBMPlatformContext-Objekt übergibt, das mit der Anwendung verknüpft ist.
  1. Importieren Sie die erforderlichen Klassen und Schnittstellen.
    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. Erstellen Sie eine Klasse, die MainScreen erweitert. Geben Sie im Konstruktor für diese Screen-Klasse den mit der Anwendung verknüpften BBMPlatformContext ein.
    public class MyBBMScreen extends MainScreen
    {
        public MyBBMScreen(BBMPlatformContext platformContext)
        {
        }
    }
  3. Deklarieren Sie eine Instanz von BBMPlatformChannel als Member-Variable der MyBBMScreen-Klasse.
    public class MyBBMScreen extends MainScreen
    {
        BBMPlatformChannel _channel;
        public MyBBMScreen(BBMPlatformContext platformContext)
        {
        }
    }
  4. Rufen Sie im MyBBMScreen-Konstruktor eine Instanz des Nachrichtendiensts ab.
    public MyBBMScreen(BBMPlatformContext platformContext)
    {
        MessagingService myMessagingService = platformContext.getMessagingService();
    }
  5. Erstellen Sie einen Kanal, der eine Instanz eines BBMPlatformChannelListener übergibt, die Sie im Schritt 9 definieren werden.
    public MyBBMScreen(BBMPlatformContext platformContext)
    {
        MessagingService myMessagingService = platformContext.getMessagingService();
        _channel = messagingService.createChannel(_channelListener);
    }
  6. Laden Sie einen Kontakt zu Ihrer Anwendung ein. In den Parametern für sendInvitation() können Sie eine Nachricht festlegen, die angezeigt werden soll, wenn der Kontakt die Einladung empfängt, einen Parameter, der als args[1] an die Hauptmethode der Anwendung übergeben wird, und eine Ablaufzeit. Im folgenden Codebeispiel wird als Ablaufzeit der Wert "0" übergeben (d. h. die Einladung läuft nie ab). Eine Benutzeroberflächenkomponente für die Kontaktauswahl wird geöffnet, aus welcher der Benutzer einen Kontakt für die Einladung auswählen kann.
    public MyBBMScreen(BBMPlatformContext platformContext)
    {
        MessagingService messagingService = platformContext.getMessagingService();
        _channel = messagingService.createChannel(_channelListener);
        _channel.sendInvitation("Let's play a game", "Chess App", 0);
    }
  7. Definieren Sie in der MyBBMScreen-Klasse eine Hilfsmethode, onContactJoined(), die von der BBMPlatformChannelListener.contactJoined()-Rückrufmethode aufgerufen wird. Übergeben Sie eine Referenz auf den Kontakt, der sich gerade angemeldet hat.
    public class MyBBMScreen extends MainScreen
    {
        BBMPlatformChannel _channel;
        public MyBBMScreen(BBMPlatformContext platformContext)
        {
            //code from steps 5 to 7    
        }
        private onContactJoined(BBMPlatformContact contact)
        {
        }
    }
  8. Erstellen Sie in der onContactJoined()-Methode eine Nachricht, binden Sie sie in ein BBMPlatformData-Objekt ein, und senden Sie sie in einem try-catch-Block. Im folgenden Codebeispiel wird an alle Kontakte, die sich bei dem Kanal angemeldet haben, die Nachricht gesendet, dass ein Teilnehmer das Spiel verlassen hat.
    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. Definieren Sie in der MyBBMScreen-Klasse den Kanallistener, _channelListener, als private innere Klasse. Rufen Sie in der contactJoined()-Methode die onContactJoined()-Methode auf, und übergeben Sie dabei den BBMPlatformContact, der sich gerade angemeldet hat.
    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) 
            {
            }
       			  }
        };
    }

Waren diese Informationen hilfreich? Senden Sie uns Ihren Kommentar.