Notificar a una aplicación cuando una lista de contactos cambia

Puede registrar su aplicación para recibir la notificación de cambios en las listas de contactos de un dispositivo BlackBerry implementando la interfaz PIMListListener. La interfaz PIMListListener ofrece los métodos siguientes:

  • itemAdded(PIMItem item), que se invoca cuando se agrega un elemento a una lista de contactos
  • itemUpdated(PIMItem oldItem, PIMItem newItem), que se invoca cuando un elemento cambia
  • itemRemoved(PIMItem item), que se invoca cuando se elimina un elemento de una lista de contactos
  1. Importe las clases y las interfaces necesarias.
    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 recibir notificaciones de cambios de la lista de contactos predeterminada, invoque PIM.openPIMList(int, int) para abrir la instancia de la lista de contactos predeterminada, pasando como parámetros el tipo de la lista que se va a abrir (PIM.CONTACT_LIST) y el modo de acceso con el que abrir la lista (PIM.READ_WRITE, PIM.READ_ONLY, o PIM.WRITE_ONLY). Avance hasta el paso 4.
    BlackBerryContactList contactList = (BlackBerryContactList) 
       PIM.getInstance().openPIMList(PIM.CONTACT_LIST, PIM.READ_WRITE);
  3. Para recibir notificaciones de cambios de una lista de contactos que no sea la lista de contactos predeterminada, realice las acciones siguientes:
    1. Invoque listPIMLists(int), pasando como parámetro el tipo de lista que se va a abrir (PIM.CONTACT_LIST), para devolver una matriz de objetos String. La matriz devuelta ofrece el nombre asignado por el sistema a cada lista de contactos. La lista de contactos predeterminada se devuelve en el índice 0 de la matriz.
      String[] lists = PIM.listPIMLists(PIM.CONTACT_LIST);
    2. Itere sobre la matriz que devuelve PIM.listPIMLists() para buscar el nombre asignado por el sistema a la lista de contactos respecto a la que desea recibir notificaciones de cambios.
    3. Invoque PIM.openPIMList(int, int, String) para abrir la instancia de la lista de contactos, pasando como parámetros el tipo de lista que se va a abrir (PIM.CONTACT_LIST), el modo de acceso con el que abrir la lista (PIM.READ_WRITE, PIM.READ_ONLY, o PIM.WRITE_ONLY) y el nombre de la lista de contactos.
      BlackBerryContactList contactList = (BlackBerryContactList) 
         PIM.getInstance().openPIMList(PIM.CONTACT_LIST, PIM.READ_WRITE, name);
  4. Invoque BlackBerryPIMList.addListener() para registrar un servicio de escucha para la lista de contactos.
    (BlackBerryPIMList) contactList.addListener(new PIMListListener());
  5. Omita lo métodos PIMListListener.itemAdded(), PIMListListener.itemUpdated() y PIMListListener.itemRemoved() para configurar el comportamiento de notificación.
    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. Busque PIMException y ControlledAccessException si su aplicación no tiene permiso para acceder a la aplicación que invoca.
Tema anterior: Eliminar un contacto

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