您的位置:首页 > 移动开发 > Android开发

Android短信备份案例

2016-02-17 15:44 381 查看
[1] 通过使用getContentResolver内容解析者实现短信的读取 , 然后将其备份到xml 文件中,

[2]通过getContentResolver还可以实现短信的插入 , 联系人的读取等功能.

package jacky.smsbackups;

import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.util.Xml;
import android.view.View;

import org.xmlpull.v1.XmlSerializer;

import java.io.File;
import java.io.FileOutputStream;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

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");
//开始写xml文档的开头
serializer.startDocument("utf-8", true);
//开始写根节点
serializer.startTag(null, "smss");

//通过查源码得知Uri
Uri uri=Uri.parse("content://sms/");
//通过内容解析者拿到要查询的内容,Manifest中药添加读写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);
System.out.println("address:" + address);

//写sms节点
serializer.startTag(null,"sms");

//写address节点
serializer.startTag(null,"address");
serializer.text(address);
serializer.endTag(null, "address");
//写date节点
serializer.startTag(null,"date");
serializer.text(date);
serializer.endTag(null,"date");
//写body节点
serializer.startTag(null,"body");
serializer.text(body);
serializer.endTag(null,"body");

serializer.endTag(null,"sms");

}
serializer.endTag(null,"smss");
serializer.endDocument();
} catch (Exception e) {
e.printStackTrace();
}
}
}


Android系统中的短信:



备份程序:



备份的xml文档:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android xml 短信 备份