标签:android备份短信 android还原短信 生成xml xml android短信读写
读取手机里的短信,备份成xml文件保存到SD卡上。
xml文件就只有一个button控件,就不再给出xml代码了。
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.xmlpull.v1.XmlSerializer;
import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.util.Xml;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
private Button bt_readsms;
/**
* 短信备份的文件对象
*/
private File smsBackUpFile;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt_readsms = (Button) findViewById(R.id.bt_readsms);
bt_readsms.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
try {
//创建一个存储备份短信的文件对象
smsBackUpFile = new File(Environment.getExternalStorageDirectory(),"sms.xml");
//创建一个xml文件的生成器。
XmlSerializer serializer = Xml.newSerializer();
//完成序列化器初始化操作。
FileOutputStream os = new FileOutputStream(smsBackUpFile);
serializer.setOutput(os, "utf-8");
//内容提供者。
//获取到一个数据库的内容的解析者
ContentResolver resolver = getContentResolver();
//游标(结果集)
Cursor cursor = resolver.query(Uri.parse("content://sms"),
new String[]{"address","date","type","body"},
null,
null,
null);
//生成xml文件的头
serializer.startDocument("utf-8", true);
serializer.startTag(null, "smss");
while(cursor.moveToNext()){
serializer.startTag(null, "sms");
String address = cursor.getString(0);
String date = cursor.getString(1);
String type = cursor.getString(2);
String body = cursor.getString(3);
serializer.startTag(null, "address");
System.out.println("短信地址:"+address);
serializer.text(address);
serializer.endTag(null, "address");
serializer.startTag(null, "date");
System.out.println("短信时间:"+date);
serializer.text(date);
serializer.endTag(null, "date");
serializer.startTag(null, "body");
System.out.println("短信内容:"+body);
serializer.text(body);
serializer.endTag(null, "body");
serializer.startTag(null, "type");
System.out.println("短信类型:"+type);
serializer.text(type);
serializer.endTag(null, "type");
serializer.endTag(null, "sms");
}
cursor.close();
serializer.endTag(null, "smss");
serializer.endDocument();
os.close();
Toast.makeText(getApplicationContext(), "备份完成", 1).show();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}
通过代码程序控制向手机发送短信,10s后手机可以接收到短信
xml文件就只有一个button控件,就不再给出xml代码了。
import android.app.Activity;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/**
* 还原一条短信
*
* @param view
*/
public void click(View view) {
new Thread(){
public void run() {
try {
//等待10秒钟的时间
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
// 获取到一个数据库的内容的解析者
ContentResolver resolver = getContentResolver();
ContentValues values = new ContentValues();
values.put("address", "95533");//指定短信的发件人
values.put("date", System.currentTimeMillis());
values.put("body", "尊敬的客户,您的银行卡余额还有300万");
values.put("type", "1");
resolver.insert(Uri.parse("content://sms"), values);
};
}.start();
}
}
标签:android备份短信 android还原短信 生成xml xml android短信读写
原文地址:http://blog.csdn.net/wtyvhreal/article/details/45874299