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

Symbian os 通讯录引擎

 2010-03-11 16:13:00 来源:WEB开发网   
核心提示:CleanupStack::PushL(contact); //3field->TextStorage()->SetTextL(KFName);//设置last name 域field = contact->FindField(EPbkFieldIdLastName);field->TextSt

CleanupStack::PushL(contact); //3

field->TextStorage()->SetTextL(KFName);

//设置last name 域

field = contact->FindField(EPbkFieldIdLastName);

field->TextStorage()->SetTextL(KLName);

//设置手机号码域

field = contact->FindField(EPbkFieldIdPhoneNumberMobile);

field->TextStorage()->SetTextL(KNumber);

//可以添加其他值域

//...

//修改后结果添加到数据库中,并返回这个通信录项的id,该id可以以后使用

TContactItemId Id = iPbkContactEngine->AddNewContactL(*contact);

CleanupStack::PopAndDestroy(3);

以上代码是否比例4的代码相对来说更简单些啊?

例8、 修改通讯录条目

实现修改和新建的代码类似,不同是你需要找到你要修改的通讯录条目aContactId,然后找到要修改的域进行修改,最后导入数据库。

_LIT(number,"13500000000");

TBuf<11> phonenumber(number);

CPbkContactEngine* iPbkContactEngine = CPbkContactEngine::NewL();

CleanupStack::PushL(PbkContactEngine);//1

//这里打开条目后加锁,以防其它客户端打开

CPbkContactItem* contact = iPbkContactEngine->OpenContactLCX(aContactId);

CleanupStack::PushL(contact); //2

//找到需要修改的field

TPbkContactItemField* field = contact->FindField(EPbkFieldIdPhoneNumberMobile);

CleanupStack::PushL(field); //3

//设置并确认修改

field->TextStorage()->SetTextL(phonenumber);

iPbkContactEngine ->CommitContactL(*contact);

CleanupStack::PopAndDestroy(2)

附录vCard:

手机应用开发中经常会遇到有关OBEX协议的问题,其实在通信录开发中也遵循这个协议,通信录中的数据是存在一个名叫vCard的载体里。vCard是一类电子名片,得到许多电子设备(如PDA和移动电话等)的支持。vCard的目的是:在这些设备之间用某些协议实现方便的通信录数据传递。可以将vCard编码成MIME规范(RFC 1521)所定义的明码文本。这种编码确保了各种vCard与限制为7位字符集(如在SMS消息中使用的编码)的传递编码的完全兼容。

上一页  2 3 4 5 6 7 8  下一页

Tags:Symbian os 通讯录

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