Androiid备份短信

xml文件代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:onClick="bfdx"
        android:text="短信的备份1" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="89dp"
        android:onClick="bfdx2"
        android:text="短信的备份2" />

</RelativeLayout>
dxxx类文件代码:

package com.example.shenchao3.domain;

public class dxxx {

	private long date;
	private int type;
	private String body;
	private String address;
	private int id;
	public dxxx() {

	}

	public dxxx(long date, int type, String body, String address,int id) {
		this.date = date;
		this.type = type;
		this.body = body;
		this.address = address;
		this.id = id;
	}

	public long getDate() {
		return date;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public void setDate(long date) {
		this.date = date;
	}

	public int getType() {
		return type;
	}

	public void setType(int type) {
		this.type = type;
	}

	public String getBody() {
		return body;
	}

	public void setBody(String body) {
		this.body = body;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

}

main文件代码:

package com.example.shenchao3;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

import org.xmlpull.v1.XmlSerializer;

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.util.Xml;
import android.view.View;
import android.widget.Toast;

import com.example.shenchao3.domain.dxxx;

public class MainActivity extends Activity {

	private List<dxxx> dxxx;

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		dxxx = new ArrayList<dxxx>();
		for (int i = 0; i < 10; i++) {
			Random random = new Random();
			long number = 1530000000;
			// 获取当前系统时间、短信的内容、短信的内容、数据
			dxxx.add(new dxxx(System.currentTimeMillis(),
					random.nextInt(2) + 1, "短信内容" + i, Long
							.toString(number + i), i));
		}
	}

	/**
	 * 备份手机的的短信
	 */
	public void bfdx(View view) {
		StringBuilder sb = new StringBuilder();
		sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");// 头
		sb.append("<dxxx>");// 根节点
		for (dxxx info : dxxx) {
			sb.append("<sms>");

			sb.append("<address>");
			sb.append(info.getAddress());
			sb.append("</address>");

			sb.append("<type>");
			sb.append(info.getType());
			sb.append("</type>");

			sb.append("<body>");
			sb.append(info.getBody());
			sb.append("</body>");

			sb.append("<date>");
			sb.append(info.getDate());
			sb.append("</date>");

			sb.append("</sms>");
		}
		sb.append("</dxxx>");
		// 获取外部存储的路径 Environment.getExternalStorageDirectory(),
		try {
			File file = new File(Environment.getExternalStorageDirectory(),
					"backup.xml");
			// 写入输入流 FileOutputStream
			FileOutputStream fos = new FileOutputStream(file);
			fos.write(sb.toString().getBytes()); // getBytes()是将一个字符串转化为一个字节数组
			fos.close();
			Toast.makeText(this, "备份成功", 0).show();
		} catch (IOException e) {
			e.printStackTrace();
			Toast.makeText(this, "备份失败", 0).show();
		}
	}

	/**
	 * 备份手机的的短信2,使用xml序列化器
	 */
	public void bfdx2(View view) {
		// XmlSerializer是序列化器
		try {
			XmlSerializer serializer = Xml.newSerializer();
			// 写的路径、用什么编码方式生成
			File file = new File(Environment.getExternalStorageDirectory(),
					"backup2.xml");
			FileOutputStream os = new FileOutputStream(file);
			// 指定写入的路径和方式
			serializer.setOutput(os, "utf-8");
			serializer.startDocument("utf-8", true);// 写入文档的头
			serializer.startTag(null, "smss");// 开始节点
			for (dxxx info : dxxx) {
				serializer.startTag(null, "smss");// 开始标签
				serializer.attribute(null, "id", info.getId() + "");

				serializer.startTag(null, "body");
				serializer.text(info.getBody());
				serializer.endTag(null, "body");

				serializer.startTag(null, "address");
				serializer.text(info.getAddress());
				serializer.endTag(null, "address");

				serializer.startTag(null, "type");
				serializer.text(info.getType() + "");
				serializer.endTag(null, "type");

				serializer.startTag(null, "date");
				serializer.text(info.getDate() + "");
				serializer.endTag(null, "date");

				serializer.endTag(null, "smss");// 结束标签
			}
			serializer.endTag(null, "smss");// 结束节点
			serializer.endDocument();// 写入文档的头的结束
			os.close();
			Toast.makeText(this, "备份成功", 0).show();
		} catch (IOException e) {
			e.printStackTrace();
			Toast.makeText(this, "备份失败", 0).show();
		}
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值