Notificar um aplicativo quando uma lista de contatos for alterada

Você pode registrar seu aplicativo para receber notificações de alteração às listas de contatos em um aparelho BlackBerry implementando a interface PIMListListener. A interface PIMListListener fornece os seguintes métodos:

  • itemAdded(PIMItem item), que é executado quando um item é adicionado a uma lista de contatos
  • itemUpdated(PIMItem oldItem, PIMItem newItem), que é executado quando um item é alterado
  • itemRemoved(PIMItem item), que é executado quando um item é excluído de uma lista de contatos
  1. Importe as classes e interfaces necessárias.
    import net.rim.blackberry.api.pdap.BlackBerrryContact;
    import net.rim.blackberry.api.pdap.BlackBerryContactList;
    import net.rim.blackberry.api.pdap.BlackBerryPIMList;
    import net.rim.blackberry.api.pdap.PIMListListener;
    import net.rim.device.api.system.ControlledAccessException;
    import javax.microedition.pim.PIMList;
    import javax.microedition.pim.PIMException;
  2. Para receber notificações de alteração para a lista de contatos padrão, execute PIM.openPIMList(int, int) para abrir a instância da lista de contatos padrão, passando o tipo de lista a ser aberta como parâmetro (PIM.CONTACT_LIST), e o modo de acesso pelo qual a lista é aberta (PIM.READ_WRITE, PIM.READ_ONLY ou PIM.WRITE_ONLY). Prossiga à etapa 4.
    BlackBerryContactList contactList = (BlackBerryContactList) 
       PIM.getInstance().openPIMList(PIM.CONTACT_LIST, PIM.READ_WRITE);
  3. Para receber notificações de alteração à uma lista de contatos que não seja a lista de contatos padrão, execute as seguintes ações:
    1. Invoque listPIMLists(int) passando o tipo de lista a ser aberta como parâmetro (PIM.CONTACT_LIST) para retornar uma matriz de objetos String. A matriz retornada fornece o nome atribuído pelo sistema a cada lista de contatos. A lista de contatos padrão é retornada no índice 0 da matriz.
      String[] lists = PIM.listPIMLists(PIM.CONTACT_LIST);
    2. Faça a iteração pela matriz PIM.listPIMLists() retornada para pesquisar o nome atribuído pelo sistema à lista de contatos para a qual você deseja receber notificações.
    3. Invoque PIM.openPIMList(int, int, String) para abrir a instância da lista de contatos, passando o tipo de lista a ser aberta como parâmetro(PIM.CONTACT_LIST), o modo de acesso pelo qual a lista é aberta (PIM.READ_WRITE, PIM.READ_ONLY ou PIM.WRITE_ONLY) e o nome da lista de contatos.
      BlackBerryContactList contactList = (BlackBerryContactList) 
         PIM.getInstance().openPIMList(PIM.CONTACT_LIST, PIM.READ_WRITE, name);
  4. Invoque BlackBerryPIMList.addListener() para registrar um ouvinte na lista de contatos.
    (BlackBerryPIMList) contactList.addListener(new PIMListListener());
  5. Substitua os métodos PIMListListener.itemAdded(), PIMListListener.itemUpdated() e PIMListListener.itemRemoved() para configurar o comportamento de notificação.
    public void itemAdded(PIMItem item) 
    {
       System.out.println("ITEM ADDED: " + 
          (BlackBerryContact) item.getString(BlackBerryContact.UID, 0));
    }
    public void itemUpdated(PIMItem oldItem, PIMItem newItem) 
    {
       System.out.println("ITEM UPDATED: " + (BlackBerryContact) 
          oldItem.getString(BlackBerryContact.UID, 0) + " to " + 
          (BlackBerryContact) newItem.getString(Contact.UID, 0));
    }
    public void itemRemoved(PIMItem item) 
    {
       System.out.println("ITEM REMOVED: " + 
          (BlackBerryContact) item.getString(BlackBerryContact.UID, 0));
    }
    
  6. Verifique PIMException e ControlledAccessException se seu aplicativo não tiver permissão para acessar o aplicativo que ele executa.
Tópico anterior: Excluir um contato

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