編輯:系統備份
AToolActivity.java
1 protected void showSmsBackUpDialog() { 2 //1,創建一個帶進度條的對話框 3 final ProgressDialog progressDialog = new ProgressDialog(this); 4 progressDialog.setIcon(R.drawable.ic_launcher); 5 progressDialog.setTitle("短信備份"); 6 //2,指定進度條的樣式為水平 7 progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 8 //3,展示進度條 9 progressDialog.show(); 10 //4,直接調用備份短信方法即可 11 new Thread(){ 12 @Override 13 public void run() { 14 String path = Environment.getExternalStorageDirectory().getAbsolutePath()+File.separator+"sms74.xml"; 15 SmsBackUp.backup(getApplicationContext(), path, new CallBack() { 16 @Override 17 public void setProgress(int index) { 18 //由開發者自己決定,使用對話框還是進度條 19 progressDialog.setProgress(index); 20 pb_bar.setProgress(index); 21 } 22 23 @Override 24 public void setMax(int max) { 25 //由開發者自己決定,使用對話框還是進度條 26 progressDialog.setMax(max); 27 pb_bar.setMax(max); 28 } 29 }); 30 31 progressDialog.dismiss(); 32 } 33 }.start(); 34 }
SmsBackUp.java
1 package com.itheima.mobilesafe74.engine; 2 3 import java.io.File; 4 import java.io.FileOutputStream; 5 import java.io.IOException; 6 import org.xmlpull.v1.XmlSerializer; 7 import android.content.Context; 8 import android.database.Cursor; 9 import android.net.Uri; 10 import android.util.Xml; 11 12 public class SmsBackUp { 13 private static int index = 0; 14 15 //備份短信方法 16 //ProgressDialog pd 原來的對話框 17 //現在改為進度條 18 19 //A,傳遞一個進度條所在的對話框 20 //B,傳遞一個進度條 21 22 public static void backup(Context ctx,String path,CallBack callBack) { 23 FileOutputStream fos = null; 24 Cursor cursor = null; 25 try { 26 //需要用到的對象上下文環境,備份文件夾路徑,進度條所在的對話框對象用於備份過程中進度的更新 27 //1,獲取備份短信寫入的文件 28 File file = new File(path); 29 //2,獲取內容解析器,獲取短信數據庫中數據 30 cursor = ctx.getContentResolver().query(Uri.parse("content://sms/"), 31 new String[]{"address","date","type","body"}, null, null, null); 32 //3,文件相應的輸出流 33 fos = new FileOutputStream(file); 34 //4,序列化數據庫中讀取的數據,放置到xml中 35 XmlSerializer newSerializer = Xml.newSerializer(); 36 //5,給次xml做相應設置 37 newSerializer.setOutput(fos, "utf-8"); 38 //DTD(xml規范) 39 newSerializer.startDocument("utf-8", true); 40 41 newSerializer.startTag(null, "smss"); 42 43 //6,備份短信總數指定 44 //A 如果傳遞進來的是對話框,指定對話框進度條的總數 45 //B 如果傳遞進來的是進度條,指定進度條的總數 46 // pd.setMax(cursor.getCount()); 47 48 if(callBack!=null){ 49 callBack.setMax(cursor.getCount()); 50 } 51 52 //7,讀取數據庫中的每一行的數據寫入到xml中 53 while(cursor.moveToNext()){ 54 newSerializer.startTag(null, "sms"); 55 56 newSerializer.startTag(null, "address"); 57 newSerializer.text(cursor.getString(0)); 58 newSerializer.endTag(null, "address"); 59 60 newSerializer.startTag(null, "date"); 61 newSerializer.text(cursor.getString(1)); 62 newSerializer.endTag(null, "date"); 63 64 newSerializer.startTag(null, "type"); 65 newSerializer.text(cursor.getString(2)); 66 newSerializer.endTag(null, "type"); 67 68 newSerializer.startTag(null, "body"); 69 newSerializer.text(cursor.getString(3)); 70 newSerializer.endTag(null, "body"); 71 72 newSerializer.endTag(null, "sms"); 73 74 //8,每循環一次就需要去讓進度條疊加 75 index++; 76 Thread.sleep(500); 77 //ProgressDialog可以在子線程中更新相應的進度條的改變 78 79 //A 如果傳遞進來的是對話框,指定對話框進度條的當前百分比 80 //B 如果傳遞進來的是進度條,指定進度條的當前百分比 81 // pd.setProgress(index); 82 83 if(callBack!=null){ 84 callBack.setProgress(index); 85 } 86 } 87 newSerializer.endTag(null, "smss"); 88 newSerializer.endDocument(); 89 } catch (Exception e) { 90 e.printStackTrace(); 91 }finally{ 92 try { 93 if(cursor!=null && fos!=null){ 94 cursor.close(); 95 fos.close(); 96 } 97 } catch (IOException e) { 98 e.printStackTrace(); 99 } 100 } 101 } 102 //回調 103 //1.定義一個接口 104 //2,定義接口中未實現的業務邏輯方法(短信總數設置,備份過程中短信百分比更新) 105 //3.傳遞一個實現了此接口的類的對象(至備份短信的工具類中),接口的實現類,一定實現了上訴兩個為實現方法(就決定了使用對話框,還是進度條) 106 //4.獲取傳遞進來的對象,在合適的地方(設置總數,設置百分比的地方)做方法的調用 107 public interface CallBack{ 108 //短信總數設置為實現方法(由自己決定是用 對話框.setMax(max) 還是用 進度條.setMax(max)) 109 public void setMax(int max); 110 //備份過程中短信百分比更新(由自己決定是用 對話框.setProgress(max) 還是用 進度條.setProgress(max)) 111 public void setProgress(int index); 112 } 113 }SmsBackUp
有兩種方式查找您的備份文件。 方法一:請點擊豌豆莢右上角-「設置」-「自動備份」,您可以在「備份路徑」中查看和修改您的備份路徑。 方法二:請點擊豌豆莢右下角備份右邊的
目前卓大師(刷機專家)暫時不提供更改備份路徑的功能,但是您可以手動將備份在SD/TF卡的clockworkmod/backup 目錄下的備份文件轉移到電
許多用戶恢復出廠設置換了手機或者手機丟失(被盜)以及系統癱瘓導致聯系電話短息無法找回,此時應該怎樣辦?下面小編來把我個人的經驗(主要針對魅族手機)簡單分享一下!第一種方法
91手機助手內置的備份還原功能,除了能夠像一般的備份軟件那樣,備份聯系人、短信、通話記錄、日程以及音樂圖片等文件資料;它更加可以備份程序軟件、游戲以及系統設置等等一系列系