Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> 系統備份 >> Android簡易實戰教程--第八話《短信備份~一》

Android簡易實戰教程--第八話《短信備份~一》

編輯:系統備份

各種手機助手裡面都包含了短信備份這一項。短信的本分主要包含四項:內容body、事件date、方式type、號碼address。

短信備份~一。使用一種很笨的方式來保存短信到xml文件中,而且保存在外部存儲。後續會有:短信備份~二(xml序列化器);短信備份~三(內容提供者獲取短信xml備份);短信備份~四(json方式備份數據庫短信)。備份的方式越來越高效,比較不同存儲方式。

很顯然,初次介紹短信備份,以一種簡單笨拙的方式,且不涉及內容提供者,虛擬10條短信。

短信的保存,要以對象的形式保存。因此創建一個javabean類:

 

package com.itydl.createxml.domain;

public class Message {

	private String body;
	private String date;
	private String address;
	private String type;
	public String getBody() {
		return body;
	}
	public void setBody(String body) {
		this.body = body;
	}
	public String getDate() {
		return date;
	}
	public void setDate(String date) {
		this.date = date;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String getType() {
		return type;
	}
	public void setType(String type) {
		this.type = type;
	}
	public Message(String body, String date, String address, String type) {
		super();
		this.body = body;
		this.date = date;
		this.address = address;
		this.type = type;
	}
	
	
}
接著在mainactivity中代碼:

 

 

package com.itydl.createxml;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;

import com.itheima.createxml.domain.Message;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;

public class MainActivity extends Activity {

	List smsList;//存取一條短信得內容的對象
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		//虛擬10條短信
		smsList = new ArrayList();
		for(int i = 0; i < 10; i++){
			Message sms = new Message("小志好棒" + i, System.currentTimeMillis() + "", "138"+i+i, "1");
			smsList.add(sms);//並把短信存儲到集合裡面去。
		}
	}

//點擊按鈕觸發備份,一IO流方式存儲
	public void click(View v){
		//在內存中把xml備份短信的格式拼接出來
		StringBuffer sb = new StringBuffer();
		sb.append("");
		sb.append("");
		for (Message sms : smsList) {
			sb.append("");
			
			sb.append("");
			sb.append(sms.getBody());//如果發短信的人吃飽了沒事干,在短信裡加上了,這樣就會報錯了。
			sb.append("");
			
			sb.append("");
			sb.append(sms.getDate());
			sb.append("");
			
			sb.append("");
			sb.append(sms.getType());
			sb.append("");
			
			sb.append("");
			sb.append(sms.getAddress());
			sb.append("");
			
			sb.append("");
		}
		sb.append("");
		
		File file = new File("sdcard/sms.xml");//把短信這種性質的信息,保存在外部存儲空間裡
		try {
			FileOutputStream fos = new FileOutputStream(file);
			fos.write(sb.toString().getBytes());
			fos.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}
因為涉及對sd卡的寫操作,因此在清單文件中記得加入權限:

 

 


運行程序,點擊短信備份按鈕。在sd卡導出xml文件,用浏覽器打開。即就是短信所有信息的備份。

 

但是,這種方式顯得很笨拙,而且當用戶短信信息裡面有一個

標簽的時候,上一次的就沒有尾節點與之匹配。就會報錯,浏覽器沒法解析這個文件。這種方式也不會使用,知識提供一種思路。後續先介紹xml序列化器生成xml文件,就不會遇到這種問題
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved