Symbian os 通讯录引擎
2010-03-11 16:13:00 来源:WEB开发网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();
CleanupStack::PushL(contact); //2
//设置first name 域
TPbkContactItemField* field = contact->FindField(EPbkFieldIdFirstName);
更多精彩
赞助商链接