广州双城热恋创意文化传播有限公司

现在的位置: 主页 > 在线留言 > 文章列表

文章正文

Android 存储学习之保存系统短信到SD卡(使用XML序列

作者:广州双城热恋创意文化传播有限公司 来源:www.666loveyou.com 发布时间:2017-09-03 12:42:02
Android 存储学习之保存系统短信到SD卡(使用XML序列化器)

上节中我们是手动拼接xml文件,但是上节中那样的做法会有一个问题,比如:

//插入消息的内容 sBuffer.append( ); sBuffer.append(sms.getBody() +); sBuffer.append();
我在插入消息内容的时候,在追加内容里面加了个 。 这样就会出现解析错误的

\

所以这节我们使用xml的序列化器来拼接短信内容。

下面的代码是如何用xml序列化器拼接一个文件:

public class MainActivity extends Activity { List list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); list = new ArrayList(); } public void storageMessage(View v) { //得到ContentResolver ContentResolver cr = getContentResolver(); //查询系统的短信,只需要查询我们关心的字段 Cursor cursor = cr.query(Uri.parse(content://sms), new String[]{address, date, type, body}, null, null, null); //取出查询到的信息 while(cursor.moveToNext()) { String address = cursor.getString(cursor.getColumnIndex(address)); String date = cursor.getString(cursor.getColumnIndex(date)); String type = cursor.getString(cursor.getColumnIndex(type)); String body = cursor.getString(cursor.getColumnIndex(body)); //将每条短信放入List集合中 Message msg = new Message(address, date, type, body); list.add(msg); } //先拿到xml序列化对象 XmlSerializer xs = Xml.newSerializer(); File file = new File(sdcard/sms2.xml); try { FileOutputStream fos = new FileOutputStream(file); //utf-8用于指定用什么编码生成xml文件 xs.setOutput(fos, utf-8); //utf-8指定头结点中enconding的属性的值 xs.startDocument(utf-8, true); xs.startTag(null, message); for (Message sms : list) { xs.startTag(null, sms); xs.startTag(null, address); xs.text(sms.getAddress()); xs.endTag(null, address); xs.startTag(null, type); xs.text(sms.getType()); xs.endTag(null, type); xs.startTag(null, date); xs.text(sms.getDate()); xs.endTag(null, date); xs.startTag(null, body); xs.text(sms.getBody() +); xs.endTag(null, body); xs.endTag(null, sms); } xs.endTag(null, message); //告诉序列化器,文件生成完毕 xs.endDocument(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
可以看到,我故意给短信的内容加了个body。

导出来查询备份的文件信息:

\

可以看到xml序列化器在内部已经自动处理了。

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:宜昌网站建设 http://yichang.45qun.com


COPYRIGHT © 2015 广州双城热恋创意文化传播有限公司 ALL RIGHTS RESERVED.
网站地图 技术支持:肥猫科技
精彩专题:网站建设
购买本站友情链接、项目合作请联系客服QQ:2500-38-100