Entwicklungshandbuch

Local Navigation

Reagieren auf Änderungen eines Kontakts in der Kontaktliste

Vor Beginn erforderliche Aktion: Stellen Sie sicher, dass Sie die Aufgabe Registrieren Ihrer Anwendung bei der BlackBerry Messenger-Plattform abgeschlossen haben und dass die Klasse, die den Bildschirm anzeigt, einen Verweis auf das mit der Anwendung verknüpfte BBMPlatformContext-Objekt übergibt.
  1. Importieren Sie die erforderlichen Klassen und Schnittstellen.
    import net.rim.blackberry.api.bbm.platform.*;
    import net.rim.blackberry.api.bbm.platform.service.*;
    import net.rim.device.api.ui.component.*;
  2. Erstellen Sie eine Klasse, die die PresenceListener-Schnittstelle implementiert und MainScreen erweitert. Geben Sie im Konstruktor für diese Screen-Klasse das mit der Anwendung verknüpfte BBMPlatformContext-Objekt ein.
    public class MyBBMContactListScreen implements PresenceListener extends MainScreen
    {
        public MyBBMContactListScreen(BBMPlatformContext platformContext) 
        {
        }
    }
  3. Rufen Sie im Konstruktor BBMPlatformContext.getContactListService().setPresenceListener() auf, um Ihrer Anwendung den PresenceListener zuzuweisen.
    public class MyBBMContactListScreen implements PresenceListener
    {
        public MyBBMContactListScreen(BBMPlatformContext platformContext) 
        {
            platformContext.getContactListService().setPresenceListener(this);
        }
    }
  4. Implementieren Sie in der MyBBMContactListScreen-Klasse die PresenceListener.presenceUpdated()-Methode. Der folgende Code zeigt ein Dialogfeld an, das den Benutzer über Änderungen an einem Kontakt in Ihrer BlackBerry Messenger-Kontaktliste informiert. Im folgenden Codebeispiel wird eine Hilfsmethode, eventType, verwendet, um den getEventName()-Parameter zu analysieren und eine lesbare String zurückzugeben.
    public void presenceUpdated(BBMPlatformContact contact, int eventType)
    {
        final String str = "[" + getEventName(eventType) + "] was changed by " + contact.getDisplayName();
        Dialog.inform(str);
    }
    private String getEventName(int eventType)
    {
        String eventName;
        switch(eventType)
        {
            case PresenceListener.EVENT_TYPE_DISPLAY_PICTURE:
                eventName = "Display picture";
                break;
            case PresenceListener.EVENT_TYPE_DISPLAY_NAME:
                eventName = "Display name";
                break;
            case PresenceListener.EVENT_TYPE_PERSONAL_MESSAGE:
                eventName = "Personal Message";
                break;
            case PresenceListener.EVENT_TYPE_STATUS:
                eventName = "Status";
                break;
            default:
                eventName = "Default";
        }
    }

Waren diese Informationen hilfreich? Senden Sie uns Ihren Kommentar.