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

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;
 
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值