把iphone的联系人,短信导入魅族M9
最近业余开发android系统, 随便买了个国产神机M9,之前一直在用iphone,于是想把iphone的联系人和短信导入新的手机, 下载了个91手机助手,发现他有android系统一键转机,可惜试用后发现不支持魅族深度定制的android系统, 随手又试了试其他android转换软件也没有合适的,无奈之下自己研究,发现可用方法,为此也写了个python转换脚本.
先说说通讯录:
我的方法是用91导出vcf通讯录文件, 然后转换编码为utf8格式, 存入SD/Contacts目录,在使用M9"导入SD卡联系人功能",就可以了,如果不转换utf8格式会有乱码.
麻烦的是短信:
我iphone用了2年多,积攒了5-6k条短信,不想就这样丢了,经过不断试验研究魅族sms.xml格式, 写出转换脚本
# Convert iphone sms to M9
# Author: Siney (siney#yeah.net)
from sqlite3 import *
from xml.sax.saxutils import escape
import codecs
import re
f = codecs.open('sms.xml','w','utf-8')
f.write ('''<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<SmsTable>
<Product>M9</Product>
<SoftwareVersion>1.0.0</SoftwareVersion>''')c = connect('sms.db')
curs = c.cursor()
curs.execute('''SELECT address,date,text,flags FROM message WHERE flags<5 ORDER BY date asc''')
for row in curs:
a= escape(unicode(row[0]))
d = escape(unicode(row[1]))
t = row[3]-1
t = str(t)
b = re.sub('"',"'",escape(unicode(row[2])))
if b!="None":
f.write(u'''
<Sms>
<MobileNumber>%s</MobileNumber>
<Body>%s</Body>
<Read>1</Read>
<Status>-1</Status>
<Type>%s</Type>
<MessageType>0</MessageType>
<ReportDate>0</ReportDate>
<SendDate>%s000</SendDate>
<Protocol>0</Protocol>
<ErrorCode>0</ErrorCode>
<Seen>0</Seen>
<Port>0</Port>
</Sms>'''%(a,b,t,d))f.write('''</SmsTable>''' )
首先使用91助手,导出iphone短信数据库sms.db, 然后把上面的脚本放入sms.db相同目录,python运行脚本得到sms.xml文件, 这个文件就是m9可是识别的短信备份文件,在m9中恢复用户数据->短信就可以恢复全部短信(不包括彩信).
最新评论及回复