public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void backup(View view){
ContentResolver resolver = getContentResolver();
Uri uri = Uri.parse("content://sms");
Cursor cursor = resolver.query(uri, null, null, null, null);
try {
XmlSerializer serializer = Xml.newSerializer();
File file = new File(Environment.getExternalStorageDirectory(),"back.xml");
OutputStream os = new FileOutputStream(file);
serializer.setOutput(os, "UTF-8");
serializer.startDocument("UTF-8", true);
serializer.startTag(null, "smss");
while(cursor.moveToNext()){
serializer.startTag(null, "sms");
serializer.startTag(null, "address");
String address = cursor.getString(cursor.getColumnIndex("address"));
serializer.text(address);
serializer.endTag(null, "address");
serializer.startTag(null, "body");
String body = cursor.getString(cursor.getColumnIndex("body"));
serializer.text(body);
serializer.endTag(null, "body");
serializer.startTag(null, "date");
long date = cursor.getLong(cursor.getColumnIndex("date"));
String dateString = new Date(date).toString();
serializer.text(dateString);
serializer.endTag(null, "date");
serializer.endTag(null, "sms");
}
serializer.endTag(null, "smss");
serializer.endDocument();
os.close();
Toast.makeText(this, "备份成功",Toast.LENGTH_SHORT).show();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
短信备份的原理——使用内容提供者
最新推荐文章于 2023-07-31 00:55:21 发布
本文介绍如何使用Android开发应用实现短信备份,并通过XML序列化将短信数据持久化到本地存储。主要内容包括创建Activity、设置布局、解析SMS内容并将其转换为XML文件。
698

被折叠的 条评论
为什么被折叠?



