获取通讯录中所有的记录


//初始化所有电话簿的信息
void CControl::InitRecord()
    {
    //查询所有的记录
    _LIT(KEmpty, "");
    CContactIdArray* pArrayOfID = iPbkContactEngine->FindLC(KEmpty);

    //得到记录总数
    TInt nCount = pArrayOfID->Count();

    //循环读取每一条记录
    TInt i = 0;
    for (i = 0; i < nCount; i++)
        {
        //创建记录变量
        CPbkContactItem* pContactItem = iPbkContactEngine->ReadContactLC(
                (*pArrayOfID)[i]);

        //记录集为空就执行下一条记录
        if (pContactItem == NULL)
            {
            continue;
            }

        TPbkContactItemField* pCntField;
        //得到姓       
        pCntField = pContactItem->FindField(EPbkFieldIdLastName);
        TBuf<50> pFirstName;
        if (pCntField)
            {
            pCntField->GetTextL(pFirstName);
            }
        else
            {
            pFirstName.Append(_L(""));
            }

        //得到名称
        pCntField = pContactItem->FindField(EPbkFieldIdFirstName);
        TBuf<50> sLastName;

        if (pCntField)
            {
            pCntField->GetTextL(sLastName);
            }
        else
            {
            sLastName.Append(_L(""));
            }

        //得到手机号
        pCntField = pContactItem->FindField(EPbkFieldIdPhoneNumberMobile);
        TBuf<50> bTel(KNullDesC);
        if (pCntField)
            {
            pCntField->GetTextL(bTel);
            }
        else
            {
            bTel.Append(_L(""));
            }

        //得到电话号码
        pCntField = pContactItem->FindField(EPbkFieldIdPhoneNumberStandard);
        TBuf<50> bPhone(KNullDesC);
        if (pCntField)
            {
            pCntField->GetTextL(bPhone);
            }
        else
            {
            bPhone.Append(_L(""));
            }

        //别的操作
       

        //记录集出栈
        CleanupStack::PopAndDestroy(pContactItem);
        }
    CleanupStack::PopAndDestroy(pArrayOfID);
    }

你可能感兴趣的:(获取通讯录中所有的记录)