Guía de desarrollo

Local Navigation

Responder a los cambios de un contacto en su lista de contactos

Antes de comenzar: Asegúrese de haber completado la tarea Registrar su aplicación con la plataforma BlackBerry Messenger, y de que la clase que muestra la pantalla pasa una referencia al objeto BBMPlatformContext asociado a su aplicación.
  1. Importe las clases y las interfaces necesarias.
    import net.rim.blackberry.api.bbm.platform.*;
    import net.rim.blackberry.api.bbm.platform.service.*;
    import net.rim.device.api.ui.component.*;
  2. Cree una clase que implemente la interfaz PresenceListener y que amplíe MainScreen. En el constructor para esta clase Screen, pase el objeto BBMPlatformContext asociado a la aplicación.
    public class MyBBMContactListScreen implements PresenceListener extends MainScreen
    {
        public MyBBMContactListScreen(BBMPlatformContext platformContext) 
        {
        }
    }
  3. En el constructor, invoque BBMPlatformContext.getContactListService().setPresenceListener() para asignar PresenceListener a su aplicación.
    public class MyBBMContactListScreen implements PresenceListener
    {
        public MyBBMContactListScreen(BBMPlatformContext platformContext) 
        {
            platformContext.getContactListService().setPresenceListener(this);
        }
    }
  4. En la clase MyBBMContactListScreen, implemente el método PresenceListener.presenceUpdated(). El siguiente código muestra un cuadro de diálogo que informa al usuario de los cambios realizados a un contacto en su lista de contactos de BlackBerry Messenger. El siguiente ejemplo de código utiliza un método Helper, getEventName(), para analizar el parámetro eventType y devolver un String legible.
    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";
        }
    }

¿Le ha resultado útil esta información? Envíenos sus comentarios.