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.
- 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.*;
- 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)
{
}
}
- 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);
}
}
- 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.