根據手機號碼查電話薄姓名

來源:互聯網
上載者:User

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.