Symbian OS 应用开发之玩转通信录
2010-03-24 17:18:00 来源:WEB开发网使用时:
CPbkContactEngine* iPbkContactEngine = CPbkContactEngine::NewL();
这样它就会建立一个默认通信录的引擎对象。
然后:
-------------------------------------------
IMPORT_C void CPbkContactEngine::DeleteContactL ( TContactItemId aContactId,
TBool aImmediateNotify = EFalse
)
IMPORT_C void CPbkContactEngine::DeleteContactsL ( const CContactIdArray & aContactIds,
TBool aImmediateNotify = EFalse
)
-------------------------------------------
上述两个函数都可以完成删除操作,只是一个是每次删除一个特定Id的通信录项,另一个是删除一个满足条件的通信录项数组。
可以简单的调用实现:
iPbkContactEngine->DeleteContactL(id);
删除后最好调用 iPbkContactEngine->CompressL();将数据库进行下压缩,因为压缩比较消耗时间,所以不要每次删除都进行。
当然有了上面的类CPbkContactEngine,我们还可以实现新建和修改通信录项的功能,其实我们在文章开始时讲述的几个类也可以完成同样的功能,但相对于这个类,操作相对复杂一点,究竟选用什么类,只是你自己的爱好。
下面举例说明实现新建和修改操作:
新建
-------------------------------------------
//省略部分声明代码(与上面重复)
...
CPbkContactItem* contact = engine->CreateEmptyContactL();//新建一空通信录项
CleanupStack::PushL(contact);
_LIT(KFName,"King");
_LIT(KLName,"Chai");
_LIT(KNumber,"13777777777");
//修改first name
TPbkContactItemField* field = contact->FindField(EPbkFieldIdFirstName);
field->TextStorage()->SetTextL(KFName);
//修改last name
field = contact->FindField(EPbkFieldIdLastName);
field->TextStorage()->SetTextL(KLName);
//修改手机号码
field = contact->FindField(EPbkFieldIdPhoneNumberMobile);
field->TextStorage()->SetTextL(KNumber);
更多精彩
赞助商链接