三星手机联系人记录导入到小米4中的方法

本文介绍了如何使用Java编程将三星手机的XML格式联系人转换为小米手机识别的VCF格式,以解决导入时的格式不匹配问题。作者通过DOM解析XML文件,并提供了一个简单的转换示例,还提到了转换后可能遇到的乱码问题及解决方案,即使用Notepad++将文件转为UTF-8无BOM格式。
摘要由CSDN通过智能技术生成

三星手机导入来的文件是xml格式,小米手机不是xml格式。具体来讲,三星手机导出的联系人信息和短息都是xml格式的,而小米手机的联系人导出是vcf格式,短息导出的是csv格式,因此如果你把三星手机的备份导入小米时会遇到一些问题。网上有一些转换软件,大多都是exe文件,我一般不喜欢直接执行未知的exe文件,尤其是为了导入手机联系人,去执行一个未知的可执行文件,风险比较大。因此我选择了自己编码,把xml文件转成小米识别的vcf格式和csv格式文件。

当然需要使用工具把三星手机中的数据导出备份出来,转换后再用小米应用把数据导入到小米手机中。闲话少叙,直接贴代码过来,只要你会使用java编程,你就可以做到。

过程中遇到转换后的文件,导入小米时出现乱码的情况,这时需要用Nodepad++把vcf文件转成以UTF-8无BOM格式编码,再导入就不会出现乱码了。

代码中用到了logger输出日志,你可以用别的方式输出日志比如system.out.println,或者不输出,把其删除;输出数据内容的类是DebugLog,该类也是自己编写的一个类,你可以使用别的方式输出数据,因此这个需要自己编写,如果需要的话我把它放在了附件里,可以参考。

* @Description:采用DOM解析XML文件
 * 三星手机I9128v导出电话和短信,导出文件格式为xml格式,
 * 导入到小米4手机中,格式为vcf格式
 * 三星电话联系人xml文件内容:
 * <Contacts>
 *    <Contact>
 *       <Name>妈</Name>
 *       <Starred>0</Starred>
 *       <PhoneList>
 *           <Phone Type="2">12345678901</Phone>
 *       </PhoneList>
 *       <Account value="0">
 *           <Name>vnd.sec.contact.phone</Name>
 *           <Type>vnd.sec.contact.phone</Type>
 *       </Account>
 *       <GroupList>
 *           <GroupName>家人</GroupName>
 *       </GroupList>
 *   </Contact>
 * </Contacts>
 * 小米4电话联系人vcf格式:
 * BEGIN:VCARD
 * VERSION:3.0
 * N:朱;锦松;;;
 * FN:朱锦松
 * TEL;TYPE=CELL:12345678901 //手机
 * TEL;TYPE=CELL:222            //手机
 * TEL;TYPE=WORK:025999999     //工作
 * TEL;TYPE=HOME:222            //家庭
 * TEL;TYPE=PREF:025666666     //总机
 * TEL;TYPE=VOICE:222           //其他
 * END:VCARD
 * 
 */

package dom;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class DomXML {
private Logger logger;
private DebugLog exportor;

public DomXML() {
exportor = DebugLog.getSharedLog();
logger = LoggerFactory.getLogger(DomXML.class);
}

//转vcf格式,转后要用Notepad++转为UTF-8无BOM格式文件,才能导入到小米手机联系人中
</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值