Android开发_备份短信



短信备份的原理

短信备份的原理,是用内容提供者读取短信,然后保存。

public class SmsBackupUtils {

	// 回调接口
	public interface SmsBackupCallback {
		/**
		 * 短信备份前调用
		 * @param total    短信的总条数
		 */
		public void beforeSmsbackup(int total);

		/**
		 * 短信调用中调用
		 * @param progress  短信的进度
		 */
		public void progressSmsbackup(int progress);
	}

	/**
	 * 短信备份的方法,备份到xml文件中,因为xml文件跨平台性强  这是一个耗时操作,应该放在子线程中执行
	 *
	 * @param context 上下文
	 * @param path 备份到哪个路径
	 * @throws Exception
	 */
	public static void smsBackup(Context context, String path,SmsBackupCallback callBack) throws Exception {

		// xml的序列化器
		XmlSerializer serializer = Xml.newSerializer();
		File file = new File(path);
		FileOutputStream fos = new FileOutputStream(file);
		// 设置参数
		serializer.setOutput(fos, "utf-8");
		// 开始
		serializer.startDocument("utf-8", true);
		serializer.startTag(null, "smss");

		ContentResolver resolver = context.getContentResolver();
		Uri uri = Uri.parse("content://sms");// 包含所有短信
		Cursor cursor = resolver.query(uri, new String[] { "address", "date",
				"type", "body" }, null, null, null);

		/*dialog.setMax(cursor.getCount());
		progressBar1.setMax(cursor.getCount());*/
		callBack.beforeSmsbackup(cursor.getCount());
		int progress = 0;
		while (cursor.moveToNext()) {
			serializer.startTag(null, "sms");

			serializer.startTag(null, "address");
			String address = cursor.getString(0);
			serializer.text(address);
			serializer.endTag(null, "address");

			serializer.startTag(null, "date");
			String date = cursor.getString(1);
			serializer.text(date);
			serializer.endTag(null, "date");

			serializer.startTag(null, "type");
			String type = cursor.getString(2);
			serializer.text(type);
			serializer.endTag(null, "type");

			serializer.startTag(null, "body");
			String body = cursor.getString(3);
			serializer.text(body);
			serializer.endTag(null, "body");

			serializer.endTag(null, "sms");
			progress++;
			/*dialog.setProgress(progress);
			progressBar1.setProgress(progress);*/
			callBack.progressSmsbackup(progress);

			SystemClock.sleep(1000);
		}
		cursor.close();

		serializer.endTag(null, "smss");
		serializer.endDocument();
	}
}
时间: 2024-10-14 20:38:38

Android开发_备份短信的相关文章

Android发展_备份短信

 短信备份的原理 短信备份的原理.是用内容提供者读取短信,然后保存. public class SmsBackupUtils { // 回调接口 public interface SmsBackupCallback { /** * 短信备份前调用 * @param total 短信的总条数 */ public void beforeSmsbackup(int total); /** * 短信调用中调用 * @param progress 短信的进度 */ public void progre

Android开发之发送短信

本实例通过SmsManager的sendTextMessage方法实现发送短信关于SmsManager的详解大家可以参照:Android开发之SmsManager详解 实例运行效果图: 实例分析: 上面的程序用到了一个PendingIntent对象,PendingIntent是对Intent的包装,表示即将发生的意图,主要用在:通知Notificatio的发送,短消息SmsManager的发送和警报器AlarmManager的执行等等.一般通过调用PendingIntent的 getActivi

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; i

向android模拟器打电话发短信的简单方法

在开发android应用程序时,有时候需要测试一下向android手机拨打电话发送短信时该应用程序的反应.譬如编写一个广播接收器,来提示用户有短信收到或者处理短信,就需要向该手机发送短信来进行测试.这里介绍一种简单的向android模拟器打电话发短信的方法. 该方法利用了eclipse ADT的DDMS来实现,首先点击打开DDMS,在eclipse界面的右上角,如图: 如果找不到,就点左边的图标,再点击others就会看到. 打开之后,在界面的左边中部会看见有一个Emulator Control

Android接收和发送短信

每一部手机都具有短信接收和发送功能,下面我们通过代码来实现接收和发送短信功能. 一.接收短信 1.创建内部广播接收器类,接收系统发出的短信广播 2.从获得的内容中解析出短信发送者和短信内容 3.在Activity中注册广播 4.添加接收短信权限 下面放上具体的代码 activity_main.xml文件用于显示短信发送者号码和显示短信内容 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout

Android 2.3发短信详细流程

在android中,APP通过SmsManager.java一系列方法实现发送短信的功能,而发送的内容有很很多种,比如sendTextMessage.sendMultipartTextMessage.sendDataMessage等等,在这篇文章里我们就以其中一个为例阐述发送短信的完整流程,如果有不对的地方,请大家指正,一起学习. 1. 起点:SmsManager.java (frameworks/base/telephony/java/android/telephony/SmsManager.

【转】如何向Android模拟器打电话发短信

转载地址:http://hi.baidu.com/jeremylai/item/420f9c9fe4881fccb62531f7 1. 启动Android Emulator, 查看标题栏找出端口.一般是android emulator(5554),其中5554就是端口. 2. 打开命令行,输入telnet localhost 5554.程序将会连接到android emulator,控制台会返回 Android Console: type ‘help’ for a list of command

android: 接收和发送短信

8.2    接收和发送短信 收发短信应该是每个手机最基本的功能之一了,即使是许多年前的老手机也都会具备这 项功能,而 Android 作为出色的智能手机操作系统,自然也少不了在这方面的支持.每个 Android 手机都会内置一个短信应用程序,使用它就可以轻松地完成收发短信的操作,如 图 8.4 所示. 图   8.4 不过作为一名开发者,仅仅满足于此显然是不够的.你要知道,Android 还提供了一系 列的 API,使得我们甚至可以在自己的应用程序里接收和发送短信.也就是说,只要你有足 够的信

备份短信

/** * 备份短信的工具方法 * @param context 上下文 * @param fos 备份到哪个文件输出流里面. * @throws Exception */ public static void backUp(Context context,FileOutputStream fos) throws Exception {//在自己的方法中使用接口 ContentResolver resolver = context.getContentResolver(); Uri uri =