WEB开发网
开发学院手机开发Symbian 开发 Symbian os 通讯录引擎 阅读

Symbian os 通讯录引擎

 2010-03-11 16:13:00 来源:WEB开发网   
核心提示:symbian os手机的通讯录采用文件方式存储,就是通讯录数据库,Symbian os 通讯录引擎,每个个symbian os手机都有一个默认的通讯录数据库,symbian os 的手机通讯录在开发上的操作依靠symbian os通讯录模型(contacts model)来实现,在创建数据库之前调用CContactD

symbian os手机的通讯录采用文件方式存储,就是通讯录数据库。每个个symbian os手机都有一个默认的通讯录数据库。symbian os 的手机通讯录在开发上的操作依靠symbian os通讯录模型(contacts model)来实现。contacts model由通讯录数据库,通讯录条目(项),通讯录域组成,

他们之间的关系是:一个手机除了系统自带的默认通讯录数据库外还可以带多个通讯录数据库;一个通讯录数据库有多个通讯录条目组成,这里每个条目就是每个联系人,具体数量限制各个手机应该不一样;而一个通讯录条目又有多个通讯录域组成,好比有姓名、工作手机号码、家庭手机号码等等,每个项就是一个域。

在这里Symbian为了统一通讯录格式,所以将通讯录条目采用vCard格式MIME规范(RFC 1521)所定义的明码文本来定义域,具体的vCard简单介绍见附录。

Symbian OS通讯录操作API类

知道了Contacts Model的概念,Symbian OS将很多系统API操作封装为几个类:

CContactDatabase(数据库类):负责新建、打开、关闭等基本数据库操作外,还负责数据库更新(通讯录条目的新建、修改、删除需要通过CContactDatabase类的操作才能实现)、排序和查找,另外还有一些建立快速拨号之类的操作也是通过它来实现。

CContactItem(通讯录条目类):由唯一的一个TContactItemId(一个TInt32类型的宏定义)标识,负责具体一个通讯录条目的创建、修改,其直接管理每一个通讯录域。

CContactItemField(域类):每一个域就是一个真实单一的数据,该数据的类型具有存储类型(TStorageType)和域类型(TFieldType)同时决定,具体的四种存储类型和多种域类型定义见系统头文件cntdef.h内的定义。

当然还有很多其它的类,比如CContactItemFieldSet(域集类)、CContactFieldStorage(与存储基类)、CContactTextFields(文本存储域类)、MContactDbObserver(通讯数据库观察类)等等

Symbian OS通讯录操作实例

1.1、 创建数据库

在symbian os中通过 CContactDatabase::CreateL()函数创建数据库。在创建之前数据库已经存在,CContactDatabase::CreatL()函数KErrAlreadyExists退出,如前所述,如果没有定义参数,CContactDatabase::CreatL()函数将创建一个默认的数据库。 为避免出现KErrAlreadyExists退出的情况 ,在创建数据库之前调用CContactDatabase::FindContactFile()函数给出了一个数据库文件的描述符,如果不存在默认数据库的话,该描述符就会返回该默认数据库的位置。

1 2 3 4 5 6  下一页

Tags:Symbian os 通讯录

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