Symbian OS 应用开发之玩转通信录
2010-03-24 17:18:00 来源:WEB开发网通信录模型提供了MContactDbObserver类,某个应用可以继承自这个类,用于接收由某个特定的通信录数据库所产生的修订提示。使用该观察者(observer)的那些应用会接收事件提示,这些事件可以是向数据库中添加一个新通信录、修改或删除一个现存的通信录,以及一定范围内的其他有用提示。
所有通信录项都继承自抽象类CContactItem,对其访问是通过前面讲过的CContactDatabase类管理的。可以用CContactItem::Id()函数(该函数返回一个 TContactItemId)来获取每个通信录项的唯一ID。CContactItem类也含有对通信录项内部的域进行操作的功能。可以添加及插入新域,也可以删除项目中的现有域。
某个通信录项内部的一些域由CContactItemField类所代表。为方便起见,位于某个特定项内部的所有域都被储存在一个结构内部,该结构被称为一个域集(CContactItemFieldSet)。每个通信录域储存了实际的域数据,以及针对该数据的一个特定储存类型。这可以是一个文本串、一个数据/时间值、一个商店,或者一个代理,它由TStorageType类代表。一个代理域基本上是对另一个通信录的链接,如,Series 60 Platform就是这样实现的:将其他通信录项的ID联系到该通信录域。请注意:这里并不支持数字表示的通信录域。所有数字信息,如电话号码和传真号码,都被作为文本保存。
接下来我们的实践会用到上面的部分类,所以上述的类大家需要认真熟悉一下,更多的细节也可以查找相关sdk的help文件。
打开、关闭数据库
CContactDatabase::OpenL()函数有两个重载函数。如果该函数没有给出一个参数,就打开默认的数据库。另一种情况是,应用设计师也可以传递一个有关数据库的路径和文件名,规定打开另一个数据库。
-------------------------------------------
// Open the default contacts database.
CContactDatabase* contactsDb = CContactDatabase::OpenL(); //打开默认数据库
CleanupStack::PushL(contactsDb);
更多精彩
赞助商链接