Recuperar contatos por número de telefone

Você pode pesquisar em todas as listas de contatos ou em uma lista de contatos específica de um aparelho BlackBerry os contatos que correspondem a um determinado número de telefone.

  1. Importe as classes e interfaces necessárias.
    import net.rim.blackberry.api.pdap.BlackBerryContact;
    import net.rim.blackberry.api.pdap.BlackBerryContactList;
    import net.rim.blackberry.api.pdap.BlackBerryPIMList;
    import net.rim.blackberry.api.phone.Phone;
    import java.util.*;
    import javax.microedition.pim.PIM;
    import javax.microedition.pim.PIMException;
    import javax.microedition.pim.PIMItem;
  2. Execute uma das seguintes ações:
    1. Para pesquisar todas as listas de contatos, invoque Phone.getContactsByPhoneNumber(), que retornará um objeto Vector que contém os contatos que correspondem ao número de telefone especificado. O objeto Vector estará vazio se não houver nenhum contato correspondente.
      Vector contacts = Phone.getContactsByPhoneNumber(phoneNum);
    2. Para pesquisar uma lista de contatos específica, invoque BlackBerryContactList.itemsByPhoneNumber(), que retornará um objeto Enumeration de todos os contatos que correspondem ao número de telefone especificado. Cada um dos itens em Enumeration é um objeto PIMItem, que você pode converter em um objeto BlackBerryContactList.
      BlackBerryContactList list = (BlackBerryContactList) 
         PIM.getInstance().openPIMList(PIM.CONTACT_LIST, PIM.READ_WRITE, "test");
      Enumeration myEnum = list.itemsByPhoneNumber(phoneNum);

Exemplo de código

try
{
   BlackBerryContactList list = (BlackBerryContactList) 
      PIM.getInstance().openPIMList(PIM.CONTACT_LIST, PIM.READ_WRITE, "test");
   Enumeration myEnum = list.itemsByPhoneNumber(phoneNum);
   while (myEnum.hasMoreElements())
   {
      Object o = myEnum.nextElement();
      if (o instanceof BlackBerryContact)
      {
         BlackBerryContact c = (BlackBerryContact) o;
         String[] name = c.getStringArray(Contact.NAME, 0);
         add(new RichTextField("A matching contact is " + 
            name[Contact.NAME_GIVEN] + " " + name[Contact.NAME_FAMILY]));
      }
   }
}
catch (Exception e)
{
   System.out.println(e.getMessage());
}

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