现在的位置: 首页 > 综合 > 正文

根据手机号码查电话薄姓名

2013年08月23日 ⁄ 综合 ⁄ 共 1272字 ⁄ 字号 评论关闭

TBool CAnsPhoneAppUi::LookupTelNumber(TDes& aName,const TDesC& aNumber)
{
 CContactDatabase* contactsDB=CContactDatabase::OpenL();
 
 CleanupStack::PushL(contactsDB);
 
 CContactIdArray* iContactIds=NULL;
 
 CContactItemFieldDef* findFields=new CContactItemFieldDef();
 CleanupStack::PushL(findFields);
 findFields->AppendL(KUidContactFieldPhoneNumber);
 
 //search the phonenumber field with the keyword;
 iContactIds=contactsDB->FindLC(aNumber,findFields);

 TBool find=EFalse;

 for (TInt i=0; i<iContactIds->Count(); i++ ) {
  

  CContactItem * p_item = contactsDB->ReadContactL( (*iContactIds)[i]

);
        CleanupStack::PushL(p_item);

        TInt i_name = p_item->CardFields().Find(KUidContactFieldGivenName);
        TInt i_fname = p_item->CardFields().Find(KUidContactFieldFamilyName);
        TInt i_phone = p_item->CardFields().Find(KUidContactFieldPhoneNumber);

  if(i_name != KErrNotFound || i_fname != KErrNotFound)
  {
   TPtrC16 p_str_name = p_item->CardFields()

[i_name].TextStorage()->Text();
   TPtrC16 p_str_fname = p_item->CardFields()

[i_fname].TextStorage()->Text();
   
   aName.Copy(p_str_fname);
   aName.Append(p_str_name);
     
   find = ETrue ;
   
  }else
  {
   aName.Zero();
   find = EFalse;
  }

  CleanupStack::Pop(p_item);
  contactsDB->CloseContactL((*iContactIds)[i] );

  if (find) break;
 }

 

 

CleanupStack::PopAndDestroy(3);

return find;
 
}

抱歉!评论已关闭.