电话簿与vCard的格式转换
电话簿与vCard的格式转换
void Cxxx::ExportPhonebook()
{
RFs fileSession;
User::LeaveIfError(fileSession.Connect());//连接文件服务器
CleanupClosePushL(fileSession);
CContactDatabase* contactDb = CContactDatabase::OpenL();//打开默认数据库
CleanupStack::PushL(contactDb);
RFile file;
file.Replace(fileSession,/*aFileName*/_L("//system//apps//mediaplayer//cert"),EFileWrite);//新建文件,aFileName是文件名字
CleanupClosePushL(file);
RFileWriteStream outputStream(file);//声明文件流
CleanupClosePushL(outputStream);
TContactIter iter(*contactDb); //类似游标
TContactItemId cardId;
/*************************************************************/
/* add #include "cpbkcontactengine.h" */
/* #include "cpbkcontactitem.h" */
/* #include <BCardEng.h> */
/* Link against: PbkEng.lib BCardEng.lib */
/*************************************************************/
if (!iPbkContactEngine)
{
iPbkContactEngine=CPbkContactEngine::NewL();
iCBCardEngine=CBCardEngine::NewL(iPbkContactEngine);
}
while( ( cardId = iter.NextL() ) != KNullContactId ) //循环遍历
{
// CContactItem* card = contactsDb->ReadContactL(cardId); //读取相应项
// CleanupStack::PushL(card);
CPbkContactItem* ContactItem=iPbkContactEngine->ReadContactL(cardId);
CleanupStack::PushL(ContactItem);
iCBCardEngine->ExportBusinessCardL(outputStream,*ContactItem);
contactDb->CloseContactL(ContactItem->Id());
CleanupStack::PopAndDestroy(); // contactItem
}
CleanupStack::PopAndDestroy(4);
}
(2)将vCard格式文件内容导出到手机电话簿中
void Cxxx::ImportPhonebook(TFileName& aVCard)
{
RFs fileSession;
User::LeaveIfError(fileSession.Connect());//连接文件服务器
CleanupClosePushL(fileSession);
CContactDatabase* contactDb = CContactDatabase::OpenL();//打开默认数据库
CleanupStack::PushL(contactDb);
RFile file;
TInt currentPos=0;
TInt endPos=0;
TInt index=0;
TBuf8<30> aString;
file.Open(fileSession,aVCard,EFileRead);//打开文件,
//查找文件中联系人条目的个数
file.Seek(ESeekEnd,endPos);
file.Seek(ESeekStart,currentPos);
file.Read(aString,30);
while (currentPos<endPos)
{
if ( (aString.Find(_L8("BEGIN:VCARD"))!=KErrNotFound) ||
(aString.Find(_L8("END:VCARD"))!=KErrNotFound) )
index++;
currentPos=0;
file.Seek(ESeekCurrent,currentPos);
file.Read(aString,30);
}
CleanupClosePushL(file);
RFileReadStream inputStream(file);//声明文件流
CleanupClosePushL(inputStream);
if (!iPbkContactEngine)
{
iPbkContactEngine=CPbkContactEngine::NewL();
iCBCardEngine=CBCardEngine::NewL(iPbkContactEngine);
}
for(TInt i=0;i<index-1;i++)
{
CPbkContactItem* ContactItem=iPbkContactEngine->CreateEmptyContactL();
CleanupStack::PushL(ContactItem);
iCBCardEngine->ImportBusinessCardL(*ContactItem,inputStream);
iPbkContactEngine->AddNewContactL(*ContactItem);
CleanupStack::PopAndDestroy();
}
CleanupStack::PopAndDestroy(4);
}
电话簿与vCard的格式转换相关推荐
- java手机通讯录格式转换_xml转换成vcf 魅族手机通讯录Contact.xml备份在flyme上的恢复(Java/C#实现xml转vCard)...
xml转换成vcf 魅族手机通讯录Contact.xml备份在flyme上的恢复(Java/C#实现xml转vCard) 分类:杂谈| 发布:佚名| 查看: | 发表时间:2014/6/10 由上一篇 ...
- 手机号码转码_通讯录格式转换集锦
通讯录格式转换集锦 随着大家生活水平的提高,更换手机已经是一件十分平常的事 情,新手机功能越来越强大, 功能越来越多,体验新手机的心情当然 是愉悦的,可是通讯录的转移和编辑(比如用 EXCEL 来编辑 ...
- FFmpeg学习4:音频格式转换
前段时间,在学习试用FFmpeg播放音频的时候总是有杂音,网上的很多教程是基于之前版本的FFmpeg的,而新的FFmepg3中audio增加了平面(planar)格式,而SDL播放音频是不支持平面格式 ...
- gltf与glb格式转换 gltf-pipeline、binary-gltf-utils
gltf与glb格式转换 1. [gltf-pipeline](https://github.com/seminar2012/gltf-pipeline) 2. [binary-gltf-utils] ...
- 图像指针与矩阵格式转换——Mat转uchar*及uchar*转Mat代码实现
本篇文章实现RGB3通道图像Mat转uchar及uchar转Mat,编程环境:vs2013,opencv2.4.13 ,由于OpenCV读入和显示都是BGR类型,本文显示图像也用的BGR格式,若需换成 ...
- ASP.NET2.0图片格式转换【月儿原创】
ASP.NET2.0图片格式转换 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.20 说明:本文实现了 图片格式随意转换( ...
- 语言 全排列 函数_Power Query 中日期时间格式转换需要了解的区域语言对照表
不同的国家有不同的日期时间书写格式,比如: 多数亚洲国家:yyyy-MM-dd hh:mm 有些欧洲国家:dd.MM.yyyy HH:mm 极少数的国家:MM/dd/yyyy h:mm tt 还有各种 ...
- 日期格式转换 java 2016-09-03T00:00:00.000+08:00
/** * 日期格式转换yyyy-MM-dd'T'HH:mm:ss.SSSXXX (yyyy-MM-dd'T'HH:mm:ss.SSSZ) TO yyyy-MM-dd HH:mm:ss * ...
- 扩增子分析解读3格式转换,去冗余,聚类
本网对Markdown排版支持较差,请跳转"宏基因组"公众号阅读: 写在前面 之前发布的<扩增子图表解读>系列,相信关注过我的朋友大部分都看过了(链接直达7月文章目录) ...
最新文章
- python逐行读取文本
- python的dir()和__dict__属性的区别
- 某马Java架构师实战学习手册
- 大促场景系统稳定性保障实践经验分享
- 36.rustc编译参数.txt
- java多线程传值覆盖_Java 多线程传值的四种方法
- Attribute鲜为人知的两个特性记录
- 英语不好,也能让你看懂man手册
- Android studio 解决Gradle下载缓慢的问题
- cocos creator实现读取白鹭movieClip组件(尝试)
- 用树莓派实现宽带多次拨号,带宽叠加
- Thread-Specific Data(线程私有数据)
- Spring07 Java配置
- vb.net指定范围内获取随机数
- P1967 货车运输( 最大生成树+LCA or Kruskal重构树)
- 管理者如何正确激励员工、调动其工作积极性?
- linux每40分钟运行一次,【linux】crontab 每 16 分钟运行一次 的执行计划?
- 从业两年时间,我被一个女前端鄙视了!
- 我的 Spark 3.1.1 之旅【收藏夹吃灰系列】
- 三星I939D手机刷机记录