Android发展_备份短信
2015-08-08 14:02
387 查看
短信备份的原理
短信备份的原理。是用内容提供者读取短信,然后保存。
短信备份的原理
短信备份的原理。是用内容提供者读取短信,然后保存。
public class SmsBackupUtils { // 回调接口 public interface SmsBackupCallback { /** * 短信备份前调用 * @param total 短信的总条数 */ public void beforeSmsbackup(int total); /** * 短信调用中调用 * @param progress 短信的进度 */ public void progressSmsbackup(int progress); } /** * 短信备份的方法,备份到xml文件里,由于xml文件跨平台性强 这是一个耗时操作,应该放在子线程中运行 * * @param context 上下文 * @param path 备份到哪个路径 * @throws Exception */ public static void smsBackup(Context context, String path,SmsBackupCallback callBack) throws Exception { // xml的序列化器 XmlSerializer serializer = Xml.newSerializer(); File file = new File(path); FileOutputStream fos = new FileOutputStream(file); // 设置參数 serializer.setOutput(fos, "utf-8"); // 開始 serializer.startDocument("utf-8", true); serializer.startTag(null, "smss"); ContentResolver resolver = context.getContentResolver(); Uri uri = Uri.parse("content://sms");// 包括全部短信 Cursor cursor = resolver.query(uri, new String[] { "address", "date", "type", "body" }, null, null, null); /*dialog.setMax(cursor.getCount()); progressBar1.setMax(cursor.getCount());*/ callBack.beforeSmsbackup(cursor.getCount()); int progress = 0; while (cursor.moveToNext()) { serializer.startTag(null, "sms"); serializer.startTag(null, "address"); String address = cursor.getString(0); serializer.text(address); serializer.endTag(null, "address"); serializer.startTag(null, "date"); String date = cursor.getString(1); serializer.text(date); serializer.endTag(null, "date"); serializer.startTag(null, "type"); String type = cursor.getString(2); serializer.text(type); serializer.endTag(null, "type"); serializer.startTag(null, "body"); String body = cursor.getString(3); serializer.text(body); serializer.endTag(null, "body"); serializer.endTag(null, "sms"); progress++; /*dialog.setProgress(progress); progressBar1.setProgress(progress);*/ callBack.progressSmsbackup(progress); SystemClock.sleep(1000); } cursor.close(); serializer.endTag(null, "smss"); serializer.endDocument(); } }
相关文章推荐
- Android加载SD卡图片出现too large to be uploaded into a texture (4128x2322, max=4096x4096)的解决办法
- 浅析Android Context
- 聊天式对话框布局问题match_parent和layout_gravity那些事(android点点滴滴)
- Android之——卸载应用程序
- android学习笔记(4)Intent初级学习
- Android WebView加载html文本时,图片太大不能适配屏幕
- 在Android studio中进行NDK开发
- android内存泄露
- Android-获取全局Context的技巧-android学习之旅(68)
- Android-获取全局Context的技巧-android学习之旅(68)
- Android-获取全局Context的技巧-android学习之旅(68)
- Android-获取全局Context的技巧-android学习之旅(68)
- Android新手不能错过的AsyncTask例子
- android dalvik heap 浅析
- Android 内存泄漏相关
- Android有效解决加载大图片时内存溢出的问题
- Android 内存管理 &Memory Leak & OOM 分析
- Android控件之ListView
- android 设置布局动画
- android-----ANR