Symbian OS 应用开发实例之通讯录(电话薄Contacts)
2010-08-11 12:12:00 来源:WEB开发网// Open the default contacts database:
CContactDatabase* contactsDb = CContactDatabase::OpenL();
CleanupStack::PushL(contactsDb);
TContactIter iter(*contactsDb);
TContactItemId cardId;
// 循环遍历
while( ( cardId = iter.NextL() ) != KNullContactId )
{
//读取相应项,这里之所以称其card,就是其实际相当于读一个完整的vCard条目
CContactItem* card = contactsDb->ReadContactL(cardId);
CleanupStack::PushL(card);
//添加自己功能代码
//……
contactsDb->CloseContactL(card->Id());
CleanupStack::PopAndDestroy(); // card
}
CleanupStack::PopAndDestroy(); // contactsDb
例4、 新建通讯录条目
// 字符串声明
_LIT(KForenameLabel,"Forename");//中文“名”
_LIT(KSurnameLabel,"Surname"); //中文“姓”
_LIT(KWorkPhoneLabel,"Work Phone");
_LIT(KForename,"Steve");
_LIT(KOtherForename,"Bob");
_LIT(KSurname,"Wilkinson");
_LIT(KWorkPhone,"+441617779700");
//以上定义的字符串,在以后例子中将直接使用,不再重新进行定义了
//打开默认数据库
CContactDatabase* contactsDb = CContactDatabase::OpenL();
CleanupStack::PushL(contactsDb);
// 建立一个新条目
CContactItem* contact = CContactCard::NewLC();
//创建一个新的文本存储类型的姓域
CContactItemField* field =
CContactItemField::NewLC(KStorageTypeText, KUidContactFieldFamilyName);
//将姓域建立与vCard的映射
field->SetMapping(KUidContactFieldVCardMapUnusedN);
//设置域标签
field->SetLabelL(KSurnameLabel);
//设置域值
field->TextStorage()->SetTextL(KSurname);
//把该域加入到新建的条目中
contact->AddFieldL(*field);
CleanupStack::Pop();
更多精彩
赞助商链接