Android短信备份案例
2016-02-17 15:44
381 查看
[1] 通过使用getContentResolver内容解析者实现短信的读取 , 然后将其备份到xml 文件中,
[2]通过getContentResolver还可以实现短信的插入 , 联系人的读取等功能.
Android系统中的短信:
备份程序:
备份的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文档:
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories