练手小项目(5)安全卫士_利用内容提供者进行短信备份
来源:互联网 发布:移动数据打开没有网络 编辑:程序博客网 时间:2024/05/26 07:28
通过点击button来备份短信 索性直接写成工具类得了
①第一点 初始化布局 Initview(context);
private static void Initview(Context context) {pd = new ProgressDialog(context);pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);pd.setMessage("正在备份数据");pd.show();}
②得到一个SD卡路径进行读取,因为要按照一定的格式写入,所以使用XML 注意加权限
File file = new File(Environment.getExternalStorageDirectory(),"backup.xml");FileOutputStream fos = new FileOutputStream(file);
③ 通过内容提供者得到 短信的发件人 内容 类型 ,日期
ContentResolver resolver = context.getContentResolver();Uri uri = Uri.parse("content://sms/");Cursor cursor = resolver.query(uri, new String[] { "body", "address","type", "date" }, null, null, null);
④通过pull解析组装xml 输出到SD卡中
XmlSerializer serializer = Xml.newSerializer();// 初始化生成器serializer.setOutput(fos, "utf-8");serializer.startDocument("utf-8", true);serializer.startTag(null, "smss");serializer.attribute(null, "max", max + "");int process = 0;while (cursor.moveToNext()) {Thread.sleep(500);String body = cursor.getString(0);String address = cursor.getString(1);String type = cursor.getString(2);String date = cursor.getString(3);serializer.startTag(null, "sms");serializer.startTag(null, "body");serializer.text(body);serializer.endTag(null, "body");serializer.startTag(null, "address");serializer.text(address);serializer.endTag(null, "address");serializer.startTag(null, "type");serializer.text(type);serializer.endTag(null, "type");serializer.startTag(null, "date");serializer.text(date);serializer.endTag(null, "date");serializer.endTag(null, "sms");// 备份过程中,增加进度process++;// pb.setProgress(process);pd.setProgress(process);}cursor.close();serializer.endTag(null, "smss");serializer.endDocument();fos.close();// pd.dismiss();}
在 activity中掉用 也简单
@Overridepublic void onClick(View v) {try {SmsUtils.backupSms(this);Toast.makeText(SmsActivity.this, "备份成功", Toast.LENGTH_SHORT);} catch (Exception e) {Toast.makeText(SmsActivity.this, "备份失败", Toast.LENGTH_SHORT);e.printStackTrace();}}
这一节不是很好,有点小bug,在下一节 我将用接口回调解耦
0 0
- 练手小项目(5)安全卫士_利用内容提供者进行短信备份
- 练手小项目(5)安全卫士_利用内容提供者进行短信备份 修正版
- 练手小项目(4)安全卫士——黑名单拦截 利用内容提供者删除通话记录
- 练手小项目(5)安全卫士_电源管理
- 练手小项目(5)安全卫士_软件管理器
- 练手小项目(5)安全卫士_程序锁
- 练手小项目(5)安全卫士_程序锁bug修复一
- 练手小项目(5)安全卫士——手机加速
- 4.1短信备份,利用系统短信内容提供者ContentResolver
- android 利用内容提供者备份短信(XML序列化器)
- 练手小项目(4)安全卫士——黑名单拦截
- (内容提供者)备份短信和添加短信
- 练手小项目(4)安全卫士——黑名单拦截,广播和服务的加入进行拦截
- Android项目:手机安全卫士(14)—— 短信备份
- 内容提供者复习——短信备份
- android内容提供者contentProvider_短信备份
- 安卓1110_四大组件-ContentProvider内容提供者 备份短信 查询联系人 插入联系人
- android:利用内容提供者操作短信
- H2通用缓存加载(1)——listener
- JAVA WEB知识总结之一--response&&request
- 解读uCos中优先级判定表OSUnMapTbl原理
- 简单的css js控制table隔行变色
- SOLR 中 Schema.xml 的filedType 的一些属性的理解
- 练手小项目(5)安全卫士_利用内容提供者进行短信备份
- android平台移植jpeg-turbo库达到减小jpeg编码体积的目的
- 开源加快了软件产业前进的速度
- 安装Tengine
- 系统状态栏设置
- android客户端通过webServcie与服务器交互,如何保持Session
- 卡特兰数的应用 Catalan number
- solr的multivalued使用说明
- python 的 do ~ while 语法