短信備份

實體類:

package com.example.sms.entities;


public class SmsInfo {
private int id;
private String address;
private long date;
private int type;
private String body;
public SmsInfo(int id, String address, long date, int type, String body) {
super();
this.id = id;
this.address = address;
this.date = date;
this.type = type;
this.body = body;
}
@Override
public String toString() {
return "SmsInfo [id=" + id + ", address=" + address + ", date=" + date
+ ", type=" + type + ", body=" + body + "]";
}
public SmsInfo() {
super();
// TODO Auto-generated constructor stub
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public long getDate() {
return date;
}
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;
}
}


2:MainActivity.java:


package com.example.sms;


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


import org.xmlpull.v1.XmlSerializer;


import com.example.sms.entities.SmsInfo;


import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.util.Xml;
import android.view.Menu;
import android.view.View;


public class MainActivity extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

/*
* 短信備份
*/
public void backupSms(View v) {
//查出所有的短信信息
Uri uri = Uri.parse("content://sms/");
ContentResolver resolver = getContentResolver();
Cursor cursor = resolver.query(uri,new String[]{"_id", "address", "date", "type", "body"}, null, null, null);
if(cursor!=null && cursor.getCount()>0) {
ArrayList<SmsInfo> smsList = new ArrayList<SmsInfo>();
SmsInfo sms;
while(cursor.moveToNext()) {
sms = new SmsInfo();
sms.setId(cursor.getInt(0));
sms.setAddress(cursor.getString(1));
sms.setDate(cursor.getLong(2));
sms.setType(cursor.getInt(3));
sms.setBody(cursor.getString(4));
}
cursor.close();
//2.序列化本地
writeToLocal(smsList);
}
}


private void writeToLocal(List<SmsInfo> smsList) {
XmlSerializer serializer = Xml.newSerializer();
try {
serializer.setOutput(new FileOutputStream("/mnt/sdcard/sms.xml"),"utf-8");
   serializer.startDocument("utf-8", true);
   serializer.startTag(null, "smss");
   for (SmsInfo smsInfo : smsList) {
serializer.startTag(null, "sms");
serializer.attribute(null,"id",String.valueOf(smsInfo.getId()));

//寫號碼
serializer.startTag(null, "address");
serializer.text(smsInfo.getAddress());
serializer.endTag(null, "address");

//寫時間
serializer.startTag(null, "date");
serializer.text(String.valueOf(smsInfo.getDate()));
serializer.endTag(null, "date");

//寫類型
serializer.startTag(null, "type");
serializer.text(String.valueOf(smsInfo.getType()));
serializer.endTag(null,"type");

//寫內容
serializer.startTag(null,"body");
serializer.text(smsInfo.getBody());
serializer.endTag(null,"body");

serializer.endTag(null, "sms");
}
   serializer.endTag(null,"smss");
   serializer.endDocument();
} catch (Exception e) {
e.printStackTrace();
}
}
}


3:

<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"
    tools:context=".MainActivity" >


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:onClick="backupSms"
        android:text="短信備份" />


</RelativeLayout>

發佈了34 篇原創文章 · 獲贊 4 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章