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

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

 2010-03-18 20:54:00 来源:WEB开发网   
核心提示://添加文本存储类型的名域field=CContactItemField::NewLC(KStorageTypeText, KUidContactFieldGivenName);field->SetMapping(KUidContactFieldVCardMapUnusedN);field->SetLabe

//添加文本存储类型的名域

field=CContactItemField::NewLC(KStorageTypeText, KUidContactFieldGivenName);

field->SetMapping(KUidContactFieldVCardMapUnusedN);

field->SetLabelL(KForenameLabel);

field->TextStorage()->SetTextL(KForename);

contact->AddFieldL(*field);

CleanupStack::Pop();

//添加文本存储类型的手机号码域

field=CContactItemField::NewLC(KStorageTypeText, KUidContactFieldPhoneNumber);

field->SetMapping(KUidContactFieldVCardMapTEL);

field->SetLabelL(KWorkPhoneLabel);

field->TextStorage()->SetTextL(KWorkPhone);

contact->AddFieldL(*field);

CleanupStack::Pop();

//把建立的新记录添加到数据库中

contactsDb->AddNewContactL(*contact);

contactsDb->SetOwnCardL(*contact);

CleanupStack::PopAndDestroy(2); // contact contactsDb

例5、 查找并更新通讯录条目

这个例子比较复杂,涉及的查找函数为FindAsyncL,该类函数实例有:

CContactIdArray * CContactDatabase::FindLC(const TDesC &aText, const CContactItemFieldDef *aFieldDef);

CIdleFinder * CContactDatabase::FindAsyncL(const TDesC &aText, const CContactItemFieldDef *aFieldDef, MIdleFindObserver *aObserver);

还有对应的FindInTextDefLC()和FindInTextDefAsyncL()各两组,具体参见sdk

下面是具体代码实例:

CContactDatabase* iContactsDb = CContactDatabase::OpenL();

CleanupStack::PushL(iContactsDb);

CContactItemFieldDef* iFieldDef = new (ELeave)CContactItemFieldDef();

CleanupStack::PushL(iFieldDef);

iFieldDef->AppendL(KUidContactFieldGivenName);

iFieldDef->AppendL(KUidContactFieldFamilyName);

_LIT(KFindToken, "Bond");

CIdleFinder * iFinder = iContactsDb->FindAsyncL( KFindToken, iFieldDef, this);

CleanupStack::PushL(iFinder);

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

Tags:Symbian OS 应用开发

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