Guia do desenvolvedor

Local Navigation

Responder a alterações de um contato em sua lista de contatos

Antes de começar: Verifique se você executou a tarefa Registrar o aplicativo na plataforma do BlackBerry Messenger e se a classe que exibe a tela fornece uma referência ao objeto BBMPlatformContext associado do aplicativo.
  1. Importe as classes e interfaces necessárias.
    import net.rim.blackberry.api.bbm.platform.*;
    import net.rim.blackberry.api.bbm.platform.service.*;
    import net.rim.device.api.ui.component.*;
  2. Crie uma classe que implemente a interface PresenceListener e estenda MainScreen. No construtor para esta classe de tela, forneça o objeto BBMPlatformContext associado do aplicativo.
    public class MyBBMContactListScreen implements PresenceListener extends MainScreen
    {
        public MyBBMContactListScreen(BBMPlatformContext platformContext) 
        {
        }
    }
  3. No construtor de tela, invoque BBMPlatformContext.getContactListService().setPresenceListener() para atribuir PresenceListener ao aplicativo.
    public class MyBBMContactListScreen implements PresenceListener
    {
        public MyBBMContactListScreen(BBMPlatformContext platformContext) 
        {
            platformContext.getContactListService().setPresenceListener(this);
        }
    }
  4. Na classe MyBBMContactListScreen, implemente o método PresenceListener.presenceUpdated(). O código a seguir exibe uma caixa de diálogo que informa o usuário sobre as alterações de um contato na sua lista de contatos do BlackBerry Messenger. O exemplo de código a seguir usa um método auxiliar, getEventName(), para analisar o parâmetro eventType e retornar um String legível.
    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";
        }
    }

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