연락처 목록 변경 시 프로그램에 알리기

PIMListListener 인터페이스를 구현하면 BlackBerry 단말기에 있는 연락처 목록의 변경에 대한 알림을 받기 위해 프로그램을 등록할 수 있습니다. PIMListListener 인터페이스는 다음 메소드를 제공합니다.

  • 연락처 목록에 항목이 추가되면 호출되는 itemAdded(PIMItem item)
  • 항목이 변경되면 호출되는 itemUpdated(PIMItem oldItem, PIMItem newItem)
  • 연락처 목록에서 항목이 삭제되면 호출되는 itemRemoved(PIMItem item)
  1. 필요한 클래스와 인터페이스를 가져옵니다.
    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. 기본 연락처 목록의 변경에 대한 알림을 받으려면 PIM.openPIMList(int, int)를 호출하여 기본 연락처 목록 인스턴스를 열고, 열려는 목록의 형식(PIM.CONTACT_LIST) 및 목록을 열 액세스 모드(PIM.READ_WRITE, PIM.READ_ONLY, 또는 PIM.WRITE_ONLY)를 매개 변수로 전달합니다. 4단계를 계속 진행합니다.
    BlackBerryContactList contactList = (BlackBerryContactList) 
       PIM.getInstance().openPIMList(PIM.CONTACT_LIST, PIM.READ_WRITE);
  3. 기본 연락처 목록이 아닌 연락처 목록의 변경에 대한 알림을 받으려면 다음 작업을 수행합니다.
    1. listPIMLists(int)를 호출하고, 열려는 목록의 형식(PIM.CONTACT_LIST)을 매개 변수로 전달하여 String 객체의 배열이 반환되도록 합니다. 반환된 배열은 각 연락처 목록에 대해 시스템이 할당한 이름을 제공합니다. 기본 연락처 목록은 이 배열의 인덱스 0으로 반환됩니다.
      String[] lists = PIM.listPIMLists(PIM.CONTACT_LIST);
    2. PIM.listPIMLists()에서 반환한 배열의 모든 요소를 반복하여 변경 알림을 받으려는 연락처 목록에 대해 시스템이 할당한 이름을 찾습니다.
    3. PIM.openPIMList(int, int, String)를 호출하여 연락처 목록 인스턴스를 열고, 열려는 목록의 형식(PIM.CONTACT_LIST), 목록을 열 액세스 모드(PIM.READ_WRITE, PIM.READ_ONLY 또는 PIM.WRITE_ONLY) 및 연락처 목록 이름을 매개 변수로 전달합니다.
      BlackBerryContactList contactList = (BlackBerryContactList) 
         PIM.getInstance().openPIMList(PIM.CONTACT_LIST, PIM.READ_WRITE, name);
  4. BlackBerryPIMList.addListener()를 호출하여 해당 연락처 목록의 수신기를 등록합니다.
    (BlackBerryPIMList) contactList.addListener(new PIMListListener());
  5. PIMListListener.itemAdded(), PIMListListener.itemUpdated()PIMListListener.itemRemoved() 메소드를 재정의하여 알림 동작을 구성합니다.
    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. 다른 프로그램을 호출하는 프로그램이 해당 프로그램에 액세스할 수 있는 권한을 갖지 못한 경우 PIMExceptionControlledAccessException이 발생하는지 확인합니다.
이전 주제: 연락처 삭제

이 정보가 도움이 되었습니까? 의견을 보내 주십시오.