短信备份

xiaoxiao2021-02-28  162

短信备份

短信备份流程

① 获取内容解析者

ContentResolver resolver = getContentResolver();

② 查询短信

Uri uri = Uri.parse("content://sms"); Cursor cursor = resolver.query(uri, new String[]{"address", "date", "body"}, null, null, null);

③ 遍历短信内容,并存在集合中

if (cursor!=null){ while (cursor.moveToNext()){ String address = cursor.getString(0); String date = cursor.getString(1); String body = cursor.getString(2); Log.e(TAG,"address"+address+"*********"+"date"+date+"************"+"body"+body); //将短信的内容存在集合中 smses.add(new SMS(date,address,body)); } }

④ 创建xml序列化器

XmlSerializer serializer = Xml.newSerializer();

⑤ 指定备份文件名和存储的位置

serializer.setOutput(openFileOutput("sms.xml",MODE_PRIVATE),"utf-8");

⑥ 遍历集合中短信的内容,并通过序列化器存储在XML文件中

serializer.startDocument("utf-8",true); serializer.startTag(null,"SMSlist"); //遍历集合,将元素获取出来 for(SMS sms:smses){ serializer.startTag(null,"SMS"); serializer.startTag(null,"address"); serializer.text(sms.address); serializer.endTag(null,"address"); serializer.startTag(null,"date"); serializer.text(sms.date); serializer.endTag(null,"date"); serializer.startTag(null,"body"); serializer.text(sms.body); serializer.endTag(null,"body"); serializer.endTag(null,"SMS"); } Toast.makeText(this, "备份完成", Toast.LENGTH_SHORT).show(); serializer.endTag(null,"SMSlist"); serializer.endDocument();

注意: 短信的读取需要权限:

<uses-permission android:name="android.permission.READ_SMS"/>

把短信存储在集合中时需要用到一个javabean对象

public class SMS { public String date; public String address; public String body; public SMS(String date, String address, String body) { this.date = date; this.address = address; this.body = body; } @Override public String toString() { return "SMS{" + "date='" + date + '\'' + ", address='" + address + '\'' + ", body='" + body + '\'' + '}'; } }
转载请注明原文地址: https://www.6miu.com/read-56904.html

最新回复(0)