备份联系人信息到sd卡上
来源:互联网 发布:2016年6月淘宝好评返现 编辑:程序博客网 时间:2024/04/29 21:18
将联系人信息备份到sd卡上,注册以下权限: <!--读取短信息权限--> <uses-permission android:name="android.permission.READ_SMS"/> <!--写入短信息权限--> <uses-permission android:name="android.permission.WRITE_SMS"/> <!--写入到卡权限--> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>package com.example.readsms.domain;public class SmsInfo {private String address;private String body;private int type;public SmsInfo() {}public SmsInfo(String address, String body, int type) {super();this.address = address;this.body = body;this.type = type;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public String getBody() {return body;}public void setBody(String body) {this.body = body;}public int getType() {return type;}public void setType(int type) {this.type = type;}}package com.example.readsms.Utils;import java.io.File;import java.io.FileOutputStream;import java.util.List;import org.xmlpull.v1.XmlSerializer;import android.content.Context;import android.os.Environment;import android.util.Xml;import android.widget.Toast;import com.example.readsms.domain.SmsInfo;public class SmsUtils {public static void backupSmsInfos(List<SmsInfo> smsInfos, Context context) {try {XmlSerializer serializer = Xml.newSerializer();//把序列化的内容存到sd卡的根目录上FileOutputStream fos = new FileOutputStream(new File(Environment.getExternalStorageDirectory(), "backup3.xml"));//设置要写入的文件流,以utf-8的编码形式写入到文件中serializer.setOutput(fos, "utf-8");//开始以utf-8的编码序列化文档serializer.startDocument("utf-8", true);//开始序列化标签serializer.startTag(null, "ssms");for (SmsInfo info : smsInfos) {serializer.startTag(null, "sms");serializer.startTag(null, "address");serializer.text(info.getAddress());serializer.endTag(null, "address");serializer.startTag(null, "body");serializer.text(info.getBody());serializer.endTag(null, "body");serializer.startTag(null, "type");serializer.text(info.getType() + "");serializer.endTag(null, "type");//结束序列化标签serializer.endTag(null, "sms");}//结束序列化文档serializer.endDocument();Toast.makeText(context, "备份成功...", 0).show();} catch (Exception e) {Toast.makeText(context, "备份失败...", 0).show();e.printStackTrace();}}}package com.example.readsms;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.content.ContentResolver;import android.database.Cursor;import android.net.Uri;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import com.example.readsms.Utils.SmsUtils;import com.example.readsms.domain.SmsInfo;public class MainActivity extends Activity implements OnClickListener {private Button readcontcat;private List<SmsInfo> smsInfos = new ArrayList<SmsInfo>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);readcontcat = (Button) findViewById(R.id.readcontcat);readcontcat.setOnClickListener(this);}@Overridepublic void onClick(View v) {//取得系统短信的路径Uri uri = Uri.parse("content://sms/");//取得内容的提供者ContentResolver resolver = getContentResolver();Cursor cursor = resolver.query(uri, new String[] { "address", "body","type" }, null, null, null);while (cursor.moveToNext()) {//取得在第0行的字符串String address = cursor.getString(0);int type = cursor.getInt(1);String body = cursor.getString(2);SmsInfo info = new SmsInfo(address, body, type);smsInfos.add(info);}cursor.close();SmsUtils.backupSmsInfos(smsInfos, this);}}全部代码:package com.example.readsms.domain;public class SmsInfo {private String address;private String body;private int type;public SmsInfo() {}public SmsInfo(String address, String body, int type) {super();this.address = address;this.body = body;this.type = type;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public String getBody() {return body;}public void setBody(String body) {this.body = body;}public int getType() {return type;}public void setType(int type) {this.type = type;}}package com.example.readsms.Utils;import java.io.File;import java.io.FileOutputStream;import java.util.List;import org.xmlpull.v1.XmlSerializer;import android.content.Context;import android.os.Environment;import android.util.Xml;import android.widget.Toast;import com.example.readsms.domain.SmsInfo;public class SmsUtils {public static void backupSmsInfos(List<SmsInfo> smsInfos, Context context) {try {XmlSerializer serializer = Xml.newSerializer();FileOutputStream fos = new FileOutputStream(new File(Environment.getExternalStorageDirectory(), "backup3.xml"));serializer.setOutput(fos, "utf-8");serializer.startDocument("utf-8", true);serializer.startTag(null, "ssms");for (SmsInfo info : smsInfos) {serializer.startTag(null, "sms");serializer.startTag(null, "address");serializer.text(info.getAddress());serializer.endTag(null, "address");serializer.startTag(null, "body");serializer.text(info.getBody());serializer.endTag(null, "body");serializer.startTag(null, "type");serializer.text(info.getType() + "");serializer.endTag(null, "type");serializer.endTag(null, "sms");}serializer.endDocument();Toast.makeText(context, "备份成功...", 0).show();} catch (Exception e) {Toast.makeText(context, "备份失败...", 0).show();e.printStackTrace();}}}package com.example.readsms;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.content.ContentResolver;import android.database.Cursor;import android.net.Uri;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import com.example.readsms.Utils.SmsUtils;import com.example.readsms.domain.SmsInfo;public class MainActivity extends Activity implements OnClickListener {private Button readcontcat;private List<SmsInfo> smsInfos = new ArrayList<SmsInfo>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);readcontcat = (Button) findViewById(R.id.readcontcat);readcontcat.setOnClickListener(this);}@Overridepublic void onClick(View v) {Uri uri = Uri.parse("content://sms/");ContentResolver resolver = getContentResolver();Cursor cursor = resolver.query(uri, new String[] { "address", "body","type" }, null, null, null);while (cursor.moveToNext()) {String address = cursor.getString(0);int type = cursor.getInt(1);String body = cursor.getString(2);SmsInfo info = new SmsInfo(address, body, type);smsInfos.add(info);}cursor.close();SmsUtils.backupSmsInfos(smsInfos, this);}}
- 备份联系人信息到sd卡上
- 获取SD卡上联系人信息
- 联系人导入导出到SD卡
- 备份sd卡上的操作系统
- 备份sd卡上的操作系统
- Phonebook导出联系人到SD卡(.vcf)
- android群发短信到通讯录所有联系人上并动态替换其中联系人信息
- Phonebook 导入SD上的.vcf联系人
- 将数据存储到SD卡上
- Android中ContentProvider组件详解 .(查找sd卡上的歌曲和联系人)
- 获取SD卡上所有的音乐文件信息
- Android 从SD卡上读取文本信息
- 数据信息保存到SD卡使用流方式
- Android 获取通讯录联系人信息(上)
- Android在sd卡中读写联系人
- android---sd卡信息
- SD卡信息获取
- 捕获全局异常并输出到SD卡上
- 项目管理点滴记录
- 细数android 自定义activity的title 中的坑(自定义title整个过程)
- 嵌入式sql c文件编译
- d-ary heaps 多叉树堆排序C++实现
- 解决org.hibernate.QueryException illegal attempt to dereference collection 错误异常
- 备份联系人信息到sd卡上
- SQLMAP参数中文解说
- Relation(Path集-改变father后必须进行dis维护)
- 有两个命令是用来开启和关闭触摸板的
- Senior Software Engineer - 2013/10/21
- 理解SQL Server中索引的概念,原理以及其他
- 摆布大三角
- http_load 对squid 进行压力测试
- 根据一列相同,把另一列not null的字段更新到null字段中