大家晚上好,这讲给大家分享的是安全有效的demo短信备份。原理是这样的,在系统中找到短信信息数据库,再将数据库里面的信息保存到其他可知的地方,这个地方指的是新建的小应用私有目录里,用到的知识点有内容提供者的使用,保存文件,如何以xml文件形式保存。恩,不多说,立马开讲。

还是先跟大家介绍一下布局文件,我写的布局文件就是一个button按钮,当点击按钮时,短信备份成功,最后以友好提示框提示。

MainActivity.java

// 进入短信备份
 public void blackupSms(View v) {

//友好提示框
  ToastUtil.show(context, "备份成功");
  
  try {
 //创建一个写入流,默认保存路径是data/data/包名/files,参数一:文件名,xml形式,参数二:保存的形式,私有
   FileOutputStream fos=openFileOutput("message.xml", MODE_PRIVATE);
  //调用业务层方法,参数是:上下文,输出流
   SmsEngine.BlackMessage(context,fos);
   
   
  } catch (Exception e) {
   e.printStackTrace();
  }
  
 }

SmsEngine.java

/**
 * 短信备份业务层
 */
public class SmsEngine {

public static void BlackMessage(Context context, FileOutputStream fos) throws Exception{
  //创建内容提供者对象,更新数据
  ContentResolver contentResolver = context.getContentResolver();

//访问短信系统数据库uri
  String uri="content://sms";
  //创建序列器
  XmlSerializer serializer=Xml.newSerializer();
 //以输出流保存xml文件,保存的格式
  serializer.setOutput(fos, "utf-8");
  serializer.startDocument("utf-8", true);//开始写入文档
  serializer.startTag(null, "smss");//开始写入标签
  
  //利用访问者查询短信系统数据库,参数一:解析后的uri,参数二:查询的字段,返回的是游标
  Cursor cursor = contentResolver.query(Uri.parse(uri), new String[]{"address","date","type","body"}, null, null, null);

//遍历游标
  while(cursor.moveToNext()){
  //获取各字段的值
   String address = cursor.getString(0);
   String date = cursor.getString(1);
   String type = cursor.getString(2);
   String body = cursor.getString(3);
   
   serializer.startTag(null, "sms");//sms标签
   
   serializer.startTag(null, "address");//address开始标签
   serializer.text(address);//写入xml文本
   serializer.endTag(null, "address");//adress结束标签
   
   serializer.startTag(null, "date");//date标签
   serializer.text(date);
   serializer.endTag(null, "date");
   
   serializer.startTag(null, "type");//type标签
   serializer.text(type);
   serializer.endTag(null, "type");
   
   serializer.startTag(null, "body");//body标签
   serializer.text(body);
   serializer.endTag(null, "body");
   
   
   serializer.endTag(null, "sms");//sms结束标签
  }
  
  serializer.endTag(null, "smss");//smss结束便签
  serializer.endDocument();//结束文档
  
  fos.close();//关闭流,游标
  cursor.close();
 }

代码就怎么多,就能实现数据的转移,短信的备份,只要在你创建的应用data/data/包名/files目录下,可以找到以xml保存的短信。晚安,希望你们有个愉快的夜晚。



再也不怕短信丢失了---短信备份相关推荐

  1. 手机短信丢失怎么才能恢复

    手机短信丢失怎么才能恢复 谈过恋爱的人都知道,朋友之间的短信即使在普通也是洋溢着甜蜜气息的.没错,我就是处在恋爱中的人,和男朋友所有的短信我都留着,还时不时的翻出来看看,想想都觉得美好.估计是我最近过 ...

  2. android 手机短信恢复,Android短信如何恢复

    Android短信如何恢复?虽然当下微信使用非常普及,但不少重要事项还是会使用短信进行沟通的,比如快递密码箱ID提醒.信用卡还款提醒.验证码等.其目的是确保一定收到,不会因断网.未登陆等消息消失.所以 ...

  3. Java 对接 阿里云 的短信服务完成短信的发送与查询

    一.开通阿里云短信服务,为开发时需要用到的信息做准备 1.注册或者使用自己的支付宝账号登录阿里云官网 2.搜索并找到短信服务,进行开通(开通是不要钱的,发送短信的时候才需要钱) 3.注册自己的短信签名 ...

  4. 猪年春节短信-猪年搞笑短信[合集]

    猪年春节短信-猪年搞笑短信 1. 今天你吃得饱吗?睡得好吗?夜深会冷吗?真想静静守在你身边,我知道你总是不会照顾自己,每当我一离开,你就从猪栏跳出去. 2. 虽然你有人的外表却只有猪的智商,弱智不是你 ...

  5. 编写了一个通过手机短信平台收发短信的软件

    看过我写的"使用Ajax技术编写的一个网站"这篇博客的网友也许已经知道我现在是做什么工作的了.由于工作的原因,需要在网络上从事一些进行商业营销的活动,以帮助工作的开展.比如:介绍公 ...

  6. mob sdk vue 短信验证_短信接口那些事儿,你知道多少?

    短信接口那些事儿,你知道多少? 无数宣传报道,很多人都了解短信接口在企业和用户.企业跟员工之间连接的方便性,而被很多企业商家所应用.只是有些人们还是对短信接口使用原则和用途不是很明白,今天小编就带给大 ...

  7. linux 短信功能,Android调用系统短信功能发送短信

    Android调用系统短信功能发送短信有两种方法: 第一种,设定发送的号码,和内容,界面没有联系人,群组组等按钮,如下图所示: 代码如下: Uri smsToUri = Uri.parse(" ...

  8. php 预防循环发短信_php短信接口发送短信失败,罪魁祸首原来在这里

    随着国民经济的高速发展,短信的应用也逐渐商业化,很多企业.商家开始使用php短信接口来进行推广.营销或内部管理,只是个别的商家在应用php短信接口的时候却遇到了短信发送失败的现象,这到底是因为商家操作 ...

  9. 从短信类到短信平台之设计篇

    引言 手机短信在系统的应用中越来越广泛,从单纯的发送信息到手机,发展到接收手机发送的短信,进行信息的获取,更有甚者,还可以进行业务的变更,业务数据的修改.从少量的发送,发展到大量的收发,衍生出大量的互 ...

最新文章

  1. 关于各种回归评价指标MSE、RMSE、MAE、R-Squared、Standard Deviation(标准差)
  2. hibernate4连接mysql自动创建表之错误
  3. 异步请求(简单一说)
  4. 深入理解计算机系统:网络编程 下 一个简单的web服务器
  5. VUE搭建手机商城心得
  6. Java多线程--使用future进行异步编程
  7. matlab 小练习,matlab初试牛刀__小练习
  8. 深度剖析WinPcap之(四)——WinPcap的体系架构(2)
  9. 看寄存代码中的方式时,一定要看到方法的底部 (有时代码会在finally中写东西) 。
  10. java 命令设计模式_Java设计模式之命令设计模式
  11. 阿里P8架构师:淘宝技术架构从1.0到4.0的架构变迁!12页PPT详解
  12. 微软在华推广Win7拒绝“黑屏”
  13. 万由nas系统安装MySQL_ESXi安装万由OS(U-NAS 3.0.9)
  14. 热血江湖单机版不显示服务器,热血江湖单机版
  15. 川农计算机应用基础考试文档,中学生计算机基础考试题库
  16. VBA代码助手专业版功能概览
  17. Kryo官方文档学习笔记
  18. 雅士利处理器软件_雅士利/ASHLY DSP360 专业3进6出处理器
  19. 和USB网络线有关的资料和我遇到的一些问题及解决
  20. 把照片做成计算机符号,把家驹的照片做成了符号的形式

热门文章

  1. excel制作可模糊匹配的下拉框
  2. 【莫尔条纹】自定义条纹宽度 代码 python numpy matplotlib
  3. 连接网络怎么连接无线网络连接服务器,win7系统怎么设置无线路由器连接网络上网...
  4. windows10家庭版远程桌面提示:身份验证错误CredSSP...
  5. pssh Oracle,需要了解的pssh(r11笔记第28天)
  6. 今日代码:Java冒泡排序
  7. uniapp——用户位置及附近的店 小程序实现
  8. 2021运动蓝牙耳机,性价比高的四款运动蓝牙耳机
  9. PHP之——PHPStorm配置PHP运行环境
  10. java基础-Map集合、Collections集合、斗地主案例