Symbian os 通讯录引擎
2010-03-11 16:13:00 来源:WEB开发网TFileName contactDbFilePath;
CContactDatabase* newDefaultContactDb;
//是否存在默认数据库
if(!CContactDatabase::FindContactFile(contactDbFilePath))
{
newDefaultContactDb = CContactDatabase::CreateL();
}
CleanupStack::PushL(newDefaultContactDb);
// 添加自己功能代码
CleanupStack::PopAndDestroy(newDefaultContactDb);
注:以上代码负责创建一个空的默认数据库。
1.2、 打开和关闭数据库
CContactDatabase::OpenL()函数有两个重载函数。如果该函数没有给出一个参数,就打开默认的数据库。另一种情况也可以传递一个有关数据库的路径和文件名,规定打开一个指定数据库。
(1)打开默认数据库
CContactDatabase* contactsDb = CContactDatabase::OpenL();
CleanupStack::PushL(contactsDb);
//取得当前数据库所有通讯条目数
TInt numberOfContacts = contactsDb->CountL();
//释放数据库
CleanupStack::PopAndDestroy(contactsDb);
要注意的是:某个通信录数据库并不具有Close()函数或类似的函数,否则我们压入清除栈时就得用CleanupClosePushL()函数了。
(2)打开指定的数据库
_LIT(KCntFile,"c:private100012a5DBS_100065FF_Contacts.cbd");
CContactsDatabase* contactsDb= CContactsDatabase::OpenL(KCntFile);
CleanupStack::PushL(contactsDb);
//添加自己功能代码
CleanupStack::PopAndDestroy(contactsDb);//释放数据库
1.3、 新建通讯录条目
// 个人信息声明
_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();
更多精彩
赞助商链接