1.      访问短信的数据库

2.      Android/data/data----------------------------数据库位置

3.      查看短信的内容提供者:Android源码—packages—providers—(根据应用包名找)TelephonyProvider—把文件夹导入eclipse(Import Projects)

4.      查看uri-------唯一标示;   uri: content://sms/

5.      因为要读写SD卡,所以要配置权限;------------读写SD卡权限

还有读写短信的权限

6.      保存到本地,一般用xml;

备份短信

public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}/*** 备份短信* @param v*/public void backupSms(View v) {// 1. 查出所有的短信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 sms;while(cursor.moveToNext()) {    // 控制游标结果集的指针向下移一位, 当到最后一位, 停止.返回falsesms = new SmsInfo();sms.setId(cursor.getInt(0)); // 设置短信的idsms.setAddress(cursor.getString(1));  // 设置短信的号码sms.setDate(cursor.getLong(2));   // 设置短信的日期sms.setType(cursor.getInt(3));    // 设置短信的类型, 接收1还是发送2sms.setBody(cursor.getString(4)); // 设置短信的内容smsList.add(sms);}cursor.close();// 2. 序列化到本地writeToLocal(smsList);}}/*** 序列化到本地*/private void writeToLocal(List<SmsInfo> smsList) {try {XmlSerializer serializer = Xml.newSerializer(); // 得到序列化对象// 指定输出位置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, "date");serializer.text(String.valueOf(smsInfo.getDate()));serializer.endTag(null, "date");//写类型serializer.startTag(null, "type");serializer.text(String.valueOf(smsInfo.getType()));serializer.endTag(null, "type");// 写内容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();}}
}

添加短信

1.      写入短信的权限;

2.      自己给自己发短信;

public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 停30秒钟, 想系统短信数据库中写一条短信new Thread(new Runnable() {@Overridepublic void run() {SystemClock.sleep(10 * 1000);Uri uri = Uri.parse("content://sms/");   // 操作sms表的uriContentValues values = new ContentValues();values.put("address", "95555");values.put("type", "1");values.put("body", "您的尾号为8890的账户, 收到100, 000, 000, 000.00元的转账. 活期余额为: 899, 777, 000, 111, 000.00元");getContentResolver().insert(uri, values);}}).start();}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}

(内容提供者)备份短信和添加短信相关推荐

  1. Day10安卓 专高 day10 ContentProvider内容提供者

    Day10安卓 专高 day10 ContentProvider内容提供者 安卓 专高 day10 ContentProvider内容提供者 ContentProvider 的使用 内容提供者,就是给 ...

  2. Android备份和添加短信

    手机发送成功的,没有成功的,接受的短信都存放在手机自带的数据库中. 现在想要备份一下这个短信,需要访问这个数据库,然后查询所有的短信.就需要内容提供者(短信). 首先要找到内容提供者的uri.

  3. Android内容提供者(群发短信)

    工程目录: Manifests添加读取联系人权限 <uses-permission android:name="android.permission.READ_CONTACTS&quo ...

  4. android studio内容提供者(查看短信的猫)点击查看短信,闪退,无法显示短信内容。(附程序源代码,以及解决办法)

    报错的问题: Permission Denial: readingcom.android.providers.telephony.SmsProvider uri content://sms/ 找到问题 ...

  5. 内容提供者ContentProvider, 读写加联系人,读写通话记录,监听收到的短信,获取之前已经收到的短信

    1.什么是内容提供者? 首先我们必须要明白的是ContentProvider(内容提供者)是android中的四大组件之一,但是在一般的开发中,可能使用比较少.ContentProvider为不同的软 ...

  6. 再也不怕短信丢失了---短信备份

    大家晚上好,这讲给大家分享的是安全有效的demo短信备份.原理是这样的,在系统中找到短信信息数据库,再将数据库里面的信息保存到其他可知的地方,这个地方指的是新建的小应用私有目录里,用到的知识点有内容提 ...

  7. 群发短信时添加网址链接的作用、劣势分别有哪些?

    你应该收到过一些企业商家发送的短信吧?如果里面带网址链接,你敢点吗?这是当下很多手机用户遇到过的问题,也是商家需要考虑的问题.虽说现在手机用户都在吐槽短信太烦人,但不可否认的是,短信作为性价比较高的营 ...

  8. Abp Core 添加短信验证码登录(动态密码登录)

    交流QQ群:555913397 有什么问题可以加群大家一起交流 Abp Core 添加短信验证码登录(动态密码登录) 现目前我国网站的已经很少使用电子邮箱了,基本上都是手机号作为账号,有时候粗心的用户 ...

  9. 10月第2周业务风控关注|内容安全惹的祸?子弹短信和斗鱼APP同一天下架

    易盾业务风控周报每周呈报值得关注的安全技术和事件,包括但不限于内容安全.移动安全.业务安全和网络安全,帮助企业提高警惕,规避这些似小实大.影响业务健康发展的安全风险. 1.内容安全惹的祸?子弹短信和斗 ...

最新文章

  1. idea 一直在build_CEO季度表彰团队| 我们一直在做最酷的事
  2. 探索.NET平台中的SIMD内在函数Vector
  3. github迁移到gitee相关问题
  4. STM32的学习记录--2.WiFi模块的使用
  5. Cortex-M3存储器系统
  6. oracle 更新flwid,Oracle分析函数RANK(),ROW_NUMBER(),LAG()等的使用方法
  7. 【python】导入HTMLTestRunner失败---报错ModuleNotFoundError: No module named ‘HTMLTestRunner‘
  8. 清理apache日志
  9. java微信刷卡支付demo_微信刷卡支付例子
  10. 晨风机器人回复词库_晨风qq机器人词库下载2015 最新完整版
  11. Android学习路之Button(按钮)与ImageButton(图像按钮)
  12. element -ui 返回顶部
  13. 性能测试 性能测试流程(一) 性能测试步骤是什么?性能测试常规流程说明
  14. 学习记录514@react使用antd选择器设置下拉菜单宽度
  15. win10部署milvus以图搜图2.0
  16. 织梦如何添html5播放器,织梦ckplayer视频播放器插件的介绍与使用
  17. 锐龙R3 4100 性能怎么样 相当于什么水平
  18. Tinker热更新与AndResGuard资源混淆的结合
  19. 随机验证码生成(生成一个含有n位随机数字的字符串)
  20. 主成分分析(R语言)

热门文章

  1. 1.安装EMQX服务器
  2. matlab实现图层线性光的代码,Photoshop图层混合模式之线性光模式分析
  3. 新AI时代序幕已拉开 不信请看这十四大例
  4. Java-面向对象编程
  5. java计算机毕业设计宠物救助网站的设计与实现源码+数据库+系统+lw文档+部署
  6. 腾讯产品快速尝鲜,蓝鲸智云社区版V6.1灰度测试开启
  7. ios获取设备信息,手机型号
  8. 微信小程序动态绑定class
  9. C# 读取PDF文本和图片
  10. 计算机一级总产量怎么算,excel表格数据增长百分比-Excel表格如何计算产量增减百分比?...