Android 通过内容解析者以xml的方式存储系统短信
我看视频学到的,下面是核心代码,只用来记忆。
//点击按钮查询短信数据库内容
public void click(View v){
try{
//获取xml序列化的实例
XmlSerializer serializer= Xml.newSerializer();
//设置序列化的参数
File file = new File(Environment.getExternalStorageDirectory().getPath(),"smsBackUp.xml");
FileOutputStream fos = new FileOutputStream(file);
serializer.setOutput(fos, "utf-8");
//[3]开始写xml文档开头
serializer.startDocument("utf-8", true);
//[4]开始写根节点
serializer.startTag(null, "smss");
//由于短信数据库也通过内容提供者暴露出来了 所以我们只需要通过内容解析者来查询
Uri uri = Uri.parse("content://sms/");
Cursor cursor = getContentResolver().query(uri, new String[] {"address","date","body"}, null, null, null);
while (cursor.moveToNext()) {
String address = cursor.getString(0);
String date = cursor.getString(1);
String body = cursor.getString(2);
//[6]写sms节点
serializer.startTag(null, "sms");
//[7]写address节点
serializer.startTag(null, "address");
serializer.text(address);
serializer.endTag(null, "address");
//[8]写body节点
serializer.startTag(null, "body");
serializer.text(body);
serializer.endTag(null, "body");
//[9]写date节点
serializer.startTag(null, "date");
serializer.text(date);
serializer.endTag(null, "date");
serializer.endTag(null, "sms");
}
serializer.endTag(null, "smss");
serializer.endDocument();
}catch (Exception e){
e.printStackTrace();
}
}