Symbian OS 应用开发之玩转通信录
2010-03-24 17:18:00 来源:WEB开发网// Count how many contacts are in the default database and then
// delete the CContactDatabase object.
// Note that all resources owned by the contacts database are freed
// upon deletion.
TInt numberOfContacts = contactsDb->CountL(); //所有数据项数目
CleanupStack::PopAndDestroy(contactsDb);// 销毁
-------------------------------------------
要注意的是:某个通信录数据库并不具有Close()函数或类似的函数。
新建数据库
CContactDatabase::CreateL()函数与 CContactDatabase::ReplaceL()函数之间的唯一差别就是:如果该数据库已经存在,前者会以KErrAlreadyExists 退出。如前所述,如果没有定义参数,这些函数将创建一个默认的数据库。CContactDatabase::FindContactFile()函数给出了一个描述符,如果不存在默认数据库的话,该描述符就会返回该默认数据库的位置。
-------------------------------------------
// If one is found, replace it with a new empty default database.
// If no default database is found, create a new one.
TFileName contactDbFilePath;
CContactDatabase* newDefaultContactDb; if(CContactDatabase::FindContactFile(contactDbFilePath)) //是否存在默认数据库
{ newDefaultContactDb = CContactDatabase::ReplaceL();
}
else
{ newDefaultContactDb = CContactDatabase::CreateL();
}
CleanupStack::PushL(newDefaultContactDb);
// 添加自己功能代码
CleanupStack::PopAndDestroy(newDefaultContactDb);
-------------------------------------------
遍历通信录项
可以用TContactIter类来遍历一个通信录数据库。这个类提供了一整套的函数,用于遍历所有的通信录项。所有的函数都用通信录项ID (TContactItemId) 进行操作,该ID 用于访问某个特定的通信录项。
-------------------------------------------
// Open the default contacts database:
CContactDatabase* contactsDb = CContactDatabase::OpenL();
更多精彩
赞助商链接