1 package com.lidaochen.phonecall;
2
3 import android.net.Uri;
4 import android.os.Environment;
5 import android.support.v7.app.AppCompatActivity;
6 import android.os.Bundle;
7 import android.util.Log;
8 import android.view.View;
9 import android.widget.Button;
10 import android.widget.TabHost;
11 import android.widget.ThemedSpinnerAdapter;
12 import android.widget.Toast;
13
14 import java.io.File;
15 import java.io.FileOutputStream;
16 import java.util.ArrayList;
17 import java.util.List;
18 import java.util.Map;
19
20 public class MainActivity extends AppCompatActivity{
21 private List<Sms> smsLists;
22 @Override
23 protected void onCreate(Bundle savedInstanceState) {
24 super.onCreate(savedInstanceState);
25 setContentView(R.layout.activity_main);
26 // 初始化我们要备份的数据
27 smsLists = new ArrayList<Sms>();
28 for (int i = 0; i < 10; i++)
29 {
30 Sms sms = new Sms();
31 sms.setAddres("10000" + i);
32 sms.setBody("Hello" + i);
33 sms.setDate("500" + i);
34 // 把sms对象加入到集合中
35 smsLists.add(sms);
36 }
37 }
38 // 按钮点击事件
39 public void click(View v)
40 {
41 // 创建sb对象
42 StringBuffer sb = new StringBuffer();
43 // 开始拼接XML文件
44 sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
45 sb.append("<Sms>");
46 // 开始组拼sms节点
47 for (Sms sms:smsLists )
48 {
49 sb.append("<sms>");
50
51 sb.append("<Addres>");
52 sb.append(sms.getAddres());
53 sb.append("</Addres>");
54
55 sb.append("<body>");
56 sb.append(sms.getBody());
57 sb.append("</body>");
58
59 sb.append("<date>");
60 sb.append(sms.getDate());
61 sb.append("</date>");
62
63 sb.append("</sms>");
64 }
65 sb.append("</Sms>");
66 // 保存数据到SD卡
67 if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()))
68 {
69 try{
70 // 创建FILE类指定我们要保存的位置
71 File file = new File(Environment.getExternalStorageDirectory().getPath(), "HelloWorld.xml");
72 FileOutputStream fos = new FileOutputStream(file);
73 fos.write(sb.toString().getBytes());
74 fos.close();
75 }
76 catch (Exception e)
77 {
78 e.printStackTrace();
79 }
80 }
81 else
82 {
83 Toast.makeText(MainActivity.this, "SD卡不可用!", Toast.LENGTH_SHORT).show();
84 }
85 }
86 }
1 package com.lidaochen.phonecall;
2
3 public class Sms {
4 private String addres;
5 private String body;
6 private String date;
7
8 public String getAddres() {
9 return addres;
10 }
11
12 public String getBody() {
13 return body;
14 }
15
16 public String getDate() {
17 return date;
18 }
19
20 public void setAddres(String addres) {
21 this.addres = addres;
22 }
23
24 public void setBody(String body) {
25 this.body = body;
26 }
27
28 public void setDate(String date) {
29 this.date = date;
30 }
31 }