前端之家收集整理的这篇文章主要介绍了
XmlSerializer生成xml文件(备份短信),
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
/**
* 备份短信
*
* @param context
*/
public static void backupSms(Context context,BackupProcess backupProcess) {
ContentResolver resolver = context.getContentResolver();
Uri uri = Uri.parse("content://sms/");
Cursor cursor = resolver.query(uri,new String[] { "address","date","type","body" },null,null);
backupProcess.backupMax(cursor.getCount());
XmlSerializer serializer = Xml.newSerializer();
File file = new File(Environment.getExternalStorageDirectory(),"backup.xml");
BufferedOutputStream bos = null;
try {
bos = new BufferedOutputStream(new FileOutputStream(file));
serializer.setOutput(bos,"utf-8");
serializer.startDocument("utf-8",true);
serializer.startTag(null,"smss");
int pd_progress = 0;
while (cursor.moveToNext()) {
Thread.sleep(500);
serializer.startTag(null,"sms");
serializer.startTag(null,"address");
String address = cursor.getString(0);
serializer.text(address);
serializer.endTag(null,"address");
serializer.startTag(null,"date");
String date = cursor.getString(1);
serializer.text(date);
serializer.endTag(null,"date");
serializer.startTag(null,"type");
String type = cursor.getString(2);
serializer.text(type);
serializer.endTag(null,"type");
serializer.startTag(null,"body");
String body = cursor.getString(3);
serializer.text(body);
serializer.endTag(null,"body");
serializer.endTag(null,"sms");
pd_progress++;
backupProcess.backupProcess(pd_progress);
}
cursor.close();
serializer.endTag(null,"smss");
serializer.endDocument();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
if (bos != null) {
try {
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}