WEB开发网
开发学院手机开发Symbian 开发 Symbian OS 应用开发之通讯录(电话薄Contacts) 阅读

Symbian OS 应用开发之通讯录(电话薄Contacts)

 2010-03-18 20:54:00 来源:WEB开发网   
核心提示:if(iFinder->IsComplete()){if(iFinder->Error() == KErrNone){CContactIdArray* result = iFinder->TakeContactIds();CleanupStack:: PushL(result);for(TInt i=

if(iFinder->IsComplete())

{

if(iFinder->Error() == KErrNone)

{

CContactIdArray* result = iFinder->TakeContactIds();

CleanupStack:: PushL(result);

for(TInt i=0; iCount(); i++)

{

TContactItemId cardId = (*result)[i];

CContactItem* ownCard = iContactsDb ->OpenContactL(cardId);

CleanupStack::PushL(ownCard);

TInt index =

ownCard->CardFields().Find(KUidContactFieldGivenName);

ownCard->CardFields()[index].TextStorage()->SetTextL(KOtherForename);

//提交所做的修改,如果这里不做更改可以调用CloseContactL直接关闭

//但是一旦用OpenContactL或 OpenContactLX打开就必须调用两者之一关闭

iContactsDb ->CommitContactL(*ownCard);

CleanupStack::PopAndDestroy();// ownCard

}

CleanupStack::PopAndDestroy();//result;

}

}

CleanupStack::PopAndDestroy(3);// iContactsDb、iFieldDef、iFinder

例6、 导出所选通讯录条目到文件(vCard)

在这里,主要使用CContactDatabase类中 ExportSelectedContactsL函数,关于该函数的定义可以查看SDK文档;而且在这里与前次遍历不一样的是,加了一个过滤器 CCntFilter类,虽然取法仍然是所有通讯条目,但做法不一样,具体例程如下:

RFs fileSession;

// 连接文件服务器

User::LeaveIfError(fileSession.Connect());

CleanupClosePushL(fileSession); //1

//打开默认数据库

CContactDatabase* contactDb = CContactDatabase::OpenL();

CleanupStack::PushL(contactDb); //2

//新建过滤器

CCntFilter* filter = CCntFilter::NewLC(); //3

filter->SetContactFilterTypeALL(EFalse);

//按vCard格式导出

filter->SetContactFilterTypeCard(ETrue);

// 安装filter

contactDb->FilterDatabaseL(*filter);

//取出满足条件的记录数据项数组

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Symbian OS 应用开发

编辑录入:coldstar [复制链接] [打 印]
赞助商链接