java手机通讯录格式转换_魅族手机通讯录Contact.xml备份在flyme上的恢复(Java实现xml转vCard)...

本文介绍了如何使用Java将魅族手机Contact.xml备份转换为vCard格式,以便在更新系统后恢复通讯录。通过DOM4J解析XML文件,将联系人信息写入vCard字符串,最终生成的vcf文件可以在支持vCard的设备上导入,包括魅族MX等。
摘要由CSDN通过智能技术生成

魅族M9买了一年多,系统没动过。直到某一天再也不能打电话发短信了,就换上了最新的flyme系统。然而之前备份了通讯录不能恢复了。

研究了一下才发现,之前备份了通讯录是在手机的Backup文件夹下,文件Contact/Contact.xml,而flyme不再支持Contact.xml的恢复。但是flyme支持vCard格式(*.vcf)导入。

对于一只程序猿来说,解决这个问题的方法必须是自己写程序。

于是研究了一下魅族通讯录备份文件Contact.xml和vCard(vcf)格式。

Contact.xml:

M9

1.0.1

张三

张三

张三

李四

李四

李四

vCard:

BEGIN:VCARD

VERSION:2.1

FN:张三

TEL;CELL:15100000000

END:VCARD

BEGIN:VCARD

VERSION:2.1

FN:李四

TEL;CELL:15155555555

END:VCARD

Contact.xml转vcf文件(Java):

public static void main(String[] args) throws DocumentException,IOException

{

// DOM4J读取Contact.xml文件

SAXReader reader = new SAXReader();

Document document = reader.read(new File("H:\\Backup\\20130422200137M9\\Contact\\Contact.xml"));

Element root = document.getRootElement();

// 联系人List

List> contacts = root.elements("Contact");

// vcf文件内容

StringBuilder sb = new StringBuilder();

// 遍历xml中的每个联系人,往vcf字符串中追加

for(Object contactObj : contacts)

{

Element eleContact = (Element) contactObj;

String name = eleContact.elementText("DisplayName");

String number = eleContact.element("PhoneElement").attribute("Value").getValue();

sb.append("BEGIN:VCARD\nVERSION:2.1\n");

sb.append("FN:");

sb.append(name);

sb.append("\nTEL;CELL:");

sb.append(number);

sb.append("\nEND:VCARD\n");

}

// 字符串写入vcf文件

FileUtils.writeStringToFile(new File("H:\\test.vcf"),sb.toString(),"utf-8");

}

上面的代码需要两个jar文件:dom4j-1.6.1.jar和commons-io-2.4.jar。

最后把生成的vcf文件拷贝到手机中,在手机中打开这个vcf文件,就可以恢复以前所有的联系人了。

由于vCard文件比较通用,所以上面的代码应该还能实现魅族的Contact.xml备份导入联系人到魅族MX或者其他各种支持vCard的手机中。

相关文章

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值