主要是使用内容提供者ContentProvider

#1.在activity_main.xml布局文件中添加写sdcard权限,并添加读短信的权限

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity" ><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="50dp"android:layout_centerHorizontal="true"android:onClick="backupsms"android:text="备份短信" /></RelativeLayout>

#2.MainActivity中内容如下

package com.wzw.backupsms;import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;import org.xmlpull.v1.XmlSerializer;import com.wzw.backupsms.entity.SmsInfo;import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.util.Log;
import android.util.Xml;
import android.view.Menu;
import android.view.View;
import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void backupsms(View v){Uri uri=Uri.parse("content://sms/");ContentResolver resolver = getContentResolver();Cursor cursor = resolver.query(uri, new String[]{"_id","address","date","type","body"}, null, null, null);if(cursor!=null&&cursor.getCount()>0){List<SmsInfo> smsList=new ArrayList<SmsInfo>();SmsInfo smsInfo;while(cursor.moveToNext()){       //控制游标指针,向下移一位smsInfo=new SmsInfo();            smsInfo.setId(cursor.getInt(0));        //设置IDsmsInfo.setAddress(cursor.getString(1));      //设置短信号码smsInfo.setDate(cursor.getLong(2));             //设置短信时间smsInfo.setType(cursor.getInt(3));                  //设置短信类型smsInfo.setBody(cursor.getString(4));               //设置短信内容smsList.add(smsInfo);}cursor.close();WriteToLocal(smsList);}}/*** 序列化到本地*/private void WriteToLocal(List<SmsInfo> smsList){XmlSerializer serializer=Xml.newSerializer();try {FileOutputStream fos=new FileOutputStream("/mnt/sdcard/sms.xml");serializer.setOutput(fos, "utf-8");serializer.startDocument("utf-8", true);serializer.startTag(null, "smss");for (SmsInfo smsInfo : smsList) {serializer.startTag(null, "sms");serializer.attribute(null, "id",String.valueOf(smsInfo.getId()));//写地址serializer.startTag(null, "address");serializer.text(smsInfo.getAddress());serializer.endTag(null, "address");//写类型serializer.startTag(null, "type");serializer.text(String.valueOf(smsInfo.getType()));serializer.endTag(null, "type");//写时间serializer.startTag(null, "date");serializer.text(String.valueOf(smsInfo.getDate()));serializer.endTag(null, "date");//写内容serializer.startTag(null, "body");serializer.text(smsInfo.getBody());serializer.endTag(null, "body");serializer.endTag(null, "sms");}serializer.endTag(null, "smss");serializer.endDocument();Toast.makeText(this, "恭喜你,备份成功!", 0).show();}  catch (Exception e) {Toast.makeText(this, "我去,备份失败!", 0).show();e.printStackTrace();}}}

#3.写入的结果

<smss>
<sms id="3">
<address>10086</address>
<type>1</type>
<date>1406446124317</date>
<body>just for test!</body>
</sms>
<sms id="2">
<address>110</address>
<type>1</type>
<date>1406446024971</date>
<body>world</body>
</sms>
<sms id="1">
<address>5556</address>
<type>1</type>
<date>1406446006018</date>
<body>hello</body>
</sms>
</smss>

记录安卓开发点点滴滴。。

Android开发短信备份小例子相关推荐

  1. android iphone6 同步短信,如何将Android手机短信备份到iPhone6

    最新文章: Virson的博客 文章来自: Lattice 很之前都问过这个问题,我应该如何将Android短信备份到Apple iPhone6?实际上,我之前曾使用过各种软件进行测试,发现如果没有越 ...

  2. android手机短信备份软件,手机短信备份软件-SMS Backup Restore Pro(短信备份) 安卓版v7.13-PC6安卓网...

    短信备份还原 SMS Backup Restore:短信备份还是很有必要的,遇到一些重要信息的保存,定时备份比较的方便. 官方介绍 短信备份还原 SMS Backup Restore是Android平 ...

  3. 短信猫实现短信验证小例子

    其实很多人都在用短信平台做这个注册的短信验证这块,以下是一个短信猫做短信验证的例子. 有具体的注解,可以尝试用用. /** * 获取验证码      */     public void sendCo ...

  4. Android之短信备份

    写短信备份的简单应用主要是为了使用xml的序列化,下面是读取短信数据库中短信信息,并将其转化成xml文件 int index = 0;Uri uri = Uri.parse("content ...

  5. android 开发 短信,Android开发之短信发送

    今天要讲的是使用Android开发发送短信程序.我们先来看下运行效果 图(1)                                                              ...

  6. 聚合数据短信验证码接口实现 Android开发短信验证码

    在说Android中的短信验证码这个知识点前,我们首先来了解下聚合数据 聚合数据介绍 聚合数据是一家国内最大的基础数据API提供商,专业从事互联网数据服务.免费提供从天气查询.空气质量.地图坐标到金融 ...

  7. Android开发短信拦截与读取,消息通知Notification

    截获系统广播,读取消息,若联系人存在于通信录中,则让消息继续传播:若属于陌生号码,则中断消息,同时把信息显示在自己的程序中. 拦截器代码如下: public class SMSInterceptRec ...

  8. Android开发——短信电话拦截/接听电话

    1.短信拦截 首先需要声明的是,Android4.4版本以上,如果想做到短信拦截,必须成为default sms,把所有短信相关的功能都包揽了,然后再做短信拦截.但这种做法,适配性和兼容性的工作是非常 ...

  9. 利用java实现的一个发送手机短信的小例子

    今天闲来无事,在微博上看到一个关于用java实现的一个发送手机短信的程序,看了看,写的不太相信,闲的没事,把他整理下来,以后可能用得着 JAVA发送手机短信,流传有几种方法:(1)使用webservi ...

最新文章

  1. 深度学习学习指南-工具篇
  2. Java_io体系之BufferedWriter、BufferedReader简介、走进源码及示例——16
  3. 安装32位mysql报错_在CentOS中安装32位或64位MySql报错error: Failed dependencies解决办法...
  4. 第 2 章:初出茅庐【初级篇 - 2.2 贪心算法】
  5. python写订单管理系统_利用Python快速搭建钉钉和邮件数据推送系统
  6. 各个会议期刊论文录取情况
  7. Spark加载hadoop配置原理
  8. 模拟退火解决TSP问题
  9. 从小白到大数据人工智能专家的学习历程-送100G学习资料
  10. NHibernate1.2在VS2005里使用的基础
  11. Android计算器效果截图,Android复杂计算器实现
  12. 华硕天选笔记本电脑启动机器后搜索不到网络
  13. 游戏翻译,本地化翻译如何做效果好
  14. 移动应用论坛——如何“玩赚”微信
  15. dede config.chche.inc.php,dedecms 后台修改系统设置,但是config.cache.inc.php文件不能写入...
  16. 徐小贱c语言试卷,纹了这条锦鲤,我遇见了现在的老公 | 纹身大赏No.12
  17. CAD Voronoi 生成插件 V2
  18. python爬虫 403 Forbidden 解决方法
  19. python网络爬虫从入门到实践第2版pdf-Python网络爬虫从入门到实践 第2版
  20. JAVA byte[]数组转long

热门文章

  1. Ripple数据本地存储概览
  2. 【基础服务】NTP时间服务器搭建
  3. ntp服务restrict_NTP服务配置文件说明
  4. 安卓手机不能开机 怎么备份 联系人 短信 通话记录
  5. http请求,get请求和post请求体以及响应体
  6. 配置Discuz论坛
  7. Python中的*args和**kwargs
  8. 红帽linux8重启网络命令,Centos8 重启网络服务 网络相关命令
  9. 三个对腰痛很有效的动作
  10. java data_Java Data类