WEB开发网
开发学院手机开发Symbian 开发 Symbian OS通讯录模型 阅读

Symbian OS通讯录模型

 2010-08-11 12:18:00 来源:WEB开发网   
核心提示:CContactDatabase* contactsDb = CContactDatabase::OpenL();CleanupStack::PushL(contactsDb);TInt numberOfContacts = contactsDb->CountL();CleanupStack::PopAndDes

CContactDatabase* contactsDb = CContactDatabase::OpenL();

CleanupStack::PushL(contactsDb);

TInt numberOfContacts = contactsDb->CountL();

CleanupStack::PopAndDestroy(contactsDb);

例2 创建数据库

CContactDatabase::CreateL()、CContactDatabase::ReplaceL()。CContactDatabase::CreateL()与

CContactDatabase::ReplaceL()函数之间的唯一差别就是:如果该数据库已经存在,前者会以KErrAlreadyExists退出。如前所述,如果没有定义参数,这些函数将创建一个默认的数据库。

TFileName contactDbFilePath(_L("C:\system\data\Contacts.cdb"));

CContactDatabase* newDefaultContactDb;

if (CContactDatabase::FindContactFile(contactDbFilePath))

newDefaultContactDb = CContactDatabase::ReplaceL();

else

newDefaultContactDb = CContactDatabase::CreateL();

CleanupStack::PushL(newDefaultContactDb);

CleanupStack::PopAndDestroy(newDefaultContactDb);

例3 读取(遍历)通讯录条目

可以用TContactIter类(该类起到数据库操作中类似游标的作用)来遍历一个通信录数据库。这个类提供了一整套的函数,用于遍历所有的通信录项。所有的函数都用通信录项ID (TContactItemId) 进行操作,该ID用于访问某个特定的通信录项。

CContactDatabase* contactsDb = CContactDatabase::OpenL();

CleanupStack::PushL(contactsDb);

TContactIter iter(*contactsDb);

TContactItemId cardId;

while ((cardId = iter.NextL()) != KNullContactId)

{

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");

上一页  1 2 3 4  下一页

Tags:Symbian OS 通讯录

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