分享

Android常用功能之短信备份

 Dragon_chen 2016-09-11
用ContentResolver来完成此功能,,备份短信(初步功能是每次全部都备份到xml文件中,不管xml文件是否已存在备份,可以备份短信的id到里面去。这样取出短信id一一比较,不是j旧的备份到里面去,对xml进行追写)
private static int index;
private static FileOutputStream fs;

public static void smsBackup(Context context, String path, ProgressDialog pd) {
index=0;
File file = new File(path);
Cursor cursor = context.getContentResolver().query(Uri.parse("content://sms"),
new String[]{"address", "date", "type", "body"}, null, null, null);
pd.setMax(cursor.getCount());
try {
fs = new FileOutputStream(file);

XmlSerializer serializer = Xml.newSerializer();
serializer.setOutput(fs, "utf-8");
serializer.startDocument("utf-8", true);
serializer.startTag(null,"smss");
while(cursor.moveToNext())
{
serializer.startTag(null,"sms");

serializer.startTag(null,"address");
serializer.text(cursor.getString(0));
serializer.endTag(null,"address");

serializer.startTag(null,"date");
serializer.text(cursor.getString(1));
serializer.endTag(null,"date");

serializer.startTag(null,"type");
serializer.text(cursor.getString(2));
serializer.endTag(null,"type");

serializer.startTag(null,"body");
serializer.text(cursor.getString(3));
serializer.endTag(null,"body");

serializer.endTag(null,"sms");
//设置进度条框
index++;
pd.setProgress(index);
}
serializer.endTag(null,"smss");
serializer.endDocument();
} catch (Exception e) {
e.printStackTrace();
}
finally {
if(cursor!=null&&fs!=null) {
cursor.close();
try {
fs.close();
} catch (IOException e) {
e.printStackTrace();
}
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约