Symbian OS 应用开发实例之通讯录(电话薄Contacts)
2010-08-11 12:12:00 来源:WEB开发网CContactIdArray* exportContact = CContactIdArray::NewL(filter->iIds);
CleanupStack::PushL(exportContact); //4
RFile file;
//新建文件,aFileName是文件名字
file.Replace(fileSession,aFileName,EFileWrite);
CleanupClosePushL(file); //5
//声明文件流
RFileWriteStream outputStream(file);
CleanupClosePushL(outputStream); //6
TUid id;
id.iUid = KVersitEntityUidVCard;
//导出到文件
contactDb->ExportSelectedContactsL(id,*exportContact, aWriteStream,
CContactDatabase::EExcludeUid);
CleanupStack::PopAndDestroy(6,contactDb);
Symbian S60独有通讯录操作API引擎
以上是适用于任何Symbian OS通讯录操作的方法,在S60平台SDK中nokia专门为我们建立了一个操作通讯录的引擎,以及相对应的产生了一些封装的类:
CPbkContactEngine(通讯录引擎类):如果已经存在一个缺省数据库,CPbkContactEngine::NewL()就连接到该数据库,否则创建该数据库。当然也可以传入文件名,打开一个指定的通讯录数据库,根据头文件cpbkcontactengine.h,他就是对 CContactDatabase和观察器类 MContactDbObserver封装了下并进行了一些优化,简便了我们操作时的一些代码,为此操作起来比较方便。
CPbkContactItem(通讯录条目类):该类头文件是CPbkContactItem.h,主要对通讯录条目类CContactItem的封装和优化,可以看出很多导出函数都是一致的。
TPbkContactItemField(域类):不用想也知道这个类是怎么来的了,该类的头文件 tpbkcontactitemfield.h。有兴趣的可以去研究比照一下。
当然也有其他一些封装的类,只不过离通讯录模型比较远的,我们就不多展开了,在例子中看其使用。
例7、 新建通讯录条目
_LIT(KFName,"King");
_LIT(KLName,"Chai");
_LIT(KNumber,"13777777777");
// 运用引擎打开默认通讯录
CPbkContactEngine* iPbkContactEngine = CPbkContactEngine::NewL();
CleanupStack::PushL(PbkContactEngine);//1
//新建一空通信录项
CPbkContactItem* contact = iPbkContactEngine->CreateEmptyContactL();
更多精彩
赞助商链接