Recuperar o contato associado a uma chamada ativa

  1. Importe as classes e interfaces necessárias.
    import net.rim.blackberry.api.pdap.BlackBerryContact;
    import net.rim.blackberry.api.phone.*;
  2. Implemente um ouvinte de telefone.
    class MyPhoneListener extends AbstractPhoneListener
    {
    }
  3. Invoque PhoneCall.getContact() em um método de retorno de chamada no ouvinte de telefone (por exemplo, em callIncoming() para uma nova chamada). O método getContact() pesquisa todas as listas de contatos no aparelho BlackBerry e retorna um BlackBerryContact associado ao número de telefone atual ou null se não houver um contato correspondente.
    public void callIncoming(int callId)
    {
       PhoneCall call = Phone.getCall(callId);
       BlackBerryContact contact = call.getContact();
    }
  4. Use as informações recuperadas do contato.

Exemplo de código

public void callIncoming(int callID) // in a phone listener
{
   StringBuffer strBuffer = new StringBuffer();
   PhoneCall call = Phone.getCall(callID);        
   BlackBerryContact contact = call.getContact();
   if(contact != null)
   {    
      if(contact.countValues(BlackBerryContact.ADDR) > 0)
      {
         String[] strArray = contact.getStringArray(BlackBerryContact.ADDR, 0);
         String city = strArray[BlackBerryContact.ADDR_LOCALITY];
         if(city != null && city.length() > 0)
         {
            strBuffer.append(city);                
         }            
         String country = strArray[BlackBerryContact.ADDR_COUNTRY];
         if(country != null && country.length() > 0)
         {
            if(city != null && city.length() > 0)
            {
               strBuffer.append(", ");
            }
            strBuffer.append(country);
         }
      }                         
   }
   // use the contact info, for example, 
   // display it on the incoming phone screen
}

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