`

andoid 打包短信发送到gmail邮箱

 
阅读更多

andriod短信整合备份发送到gmail邮箱,需要在andoid手机配置好gmail邮箱

github代码 https://github.com/zhwj184/smsbackup

查看效果:



 

 

可以把几天的短信打包发送到自己的gmail邮箱,可以定时备份下短信。

 

主要代码:

package org.smsautobackup;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

import android.app.Activity;
import android.app.ActivityManager;
import android.content.ContentResolver;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {

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

		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
		Date curDate = new Date(System.currentTimeMillis());// 获取当前时间
		Date lastDate = new Date(curDate.getYear(), curDate.getMonth(),
				curDate.getDate() - 1);
		((EditText) findViewById(R.id.endDate)).setText(formatter
				.format(curDate));
		((EditText) findViewById(R.id.startDate)).setText(formatter
				.format(lastDate));
		Button btn = (Button) findViewById(R.id.button1);
		btn.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				sendSms(getSmsInPhone());
			}

		});
//		Button btn1 = (Button) findViewById(R.id.button2);
//		btn1.setOnClickListener(new View.OnClickListener() {
//			public void onClick(View v) {
//				EditText txtContent = (EditText) MainActivity.this.findViewById(R.id.editText1);
//				AutoBackupService.receiver = txtContent.getText().toString();
//				startService(new Intent(MainActivity.this,
//						AutoBackupService.class));
//			}
//		});
	}

	private String getSmsInPhone() {
		StringBuilder smsBuilder = new StringBuilder();
		EditText startDatePicker = (EditText) findViewById(R.id.startDate);
		EditText endDatePicker = (EditText) findViewById(R.id.endDate);
		DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
		try {
			Date startDate = df.parse(startDatePicker.getText().toString());
			Date endDate = df.parse(endDatePicker.getText().toString());
			ContentResolver cr = getContentResolver();
			return SmsUtil.getSmsInPhone(startDate, endDate, cr);
		}catch(Exception e){
			Log.d("Exception in getSmsInPhone", e.getMessage());
		}
		return "";
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	protected void onDestroy() {
		super.onDestroy();
		ActivityManager activityMgr= (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
		activityMgr.restartPackage(getPackageName());
	}

	private void sendSms(String content) {
		Intent intent = new Intent(android.content.Intent.ACTION_SEND);
		intent.setType("plain/text");
		// intent.setType("message/rfc822") ; // 真机上使用这行
		EditText txtContent = (EditText) findViewById(R.id.editText1);
		String[] strEmailReciver = new String[] { txtContent.getText()
				.toString() };
		intent.putExtra(android.content.Intent.EXTRA_EMAIL, strEmailReciver); // 设置收件人
		EditText startDatePicker = (EditText) findViewById(R.id.startDate);
		EditText endDatePicker = (EditText) findViewById(R.id.endDate);
		intent.putExtra(Intent.EXTRA_SUBJECT, "["
				+ startDatePicker.getText().toString() + "至"
				+ endDatePicker.getText().toString() + "]短信备份");
		intent.putExtra(android.content.Intent.EXTRA_TEXT, content); // 设置内容
		startActivity(Intent.createChooser(intent,
				"send SMS to your mail success"));
	}
}

 

package org.smsautobackup;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import android.content.ContentResolver;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteException;
import android.net.Uri;
import android.util.Log;
import android.widget.EditText;

public class SmsUtil {

	// android获取短信所有内容
	public static String getSmsInPhone(Date startDate,Date endDate,ContentResolver cr) {
		final String SMS_URI_ALL = "content://sms/";
		final String SMS_URI_INBOX = "content://sms/inbox";
		final String SMS_URI_SEND = "content://sms/sent";
		final String SMS_URI_DRAFT = "content://sms/draft";

		StringBuilder smsBuilder = new StringBuilder();

		try {
			String[] projection = new String[] { "_id", "address", "person",
					"body", "date", "type" };
			Uri uri = Uri.parse(SMS_URI_ALL);
			Cursor cur = cr.query(uri, projection, null, null, "date desc");

			if (cur.moveToFirst()) {
				String name;
				String phoneNumber;
				String smsbody;
				String date;
				String type;

				int nameColumn = cur.getColumnIndex("person");
				int phoneNumberColumn = cur.getColumnIndex("address");
				int smsbodyColumn = cur.getColumnIndex("body");
				int dateColumn = cur.getColumnIndex("date");
				int typeColumn = cur.getColumnIndex("type");

				do {
					name = cur.getString(nameColumn);
					phoneNumber = cur.getString(phoneNumberColumn);
					smsbody = cur.getString(smsbodyColumn);

					SimpleDateFormat dateFormat = new SimpleDateFormat(
							"yyyy-MM-dd hh:mm:ss");
					Date d = new Date(Long.parseLong(cur.getString(dateColumn)));
					if (d.before(startDate) || d.after(endDate)) {
						continue;
					}
					date = dateFormat.format(d);

					int typeId = cur.getInt(typeColumn);
					if (typeId == 1) {
						type = "接收";
					} else if (typeId == 2) {
						type = "发送";
					} else {
						type = "";
					}

					smsBuilder.append("[");
					smsBuilder.append(name==null?"":name + ",");
					smsBuilder.append(phoneNumber + ",");
					smsBuilder.append(smsbody + ",");
					smsBuilder.append(date + ",");
					smsBuilder.append(type);
					smsBuilder.append("]\n");

					if (smsbody == null)
						smsbody = "";
				} while (cur.moveToNext());
			} else {
				smsBuilder.append("no result!");
			}

			smsBuilder.append("getSmsInPhone has executed!");
		} catch (SQLiteException ex) {
			Log.d("SQLiteException in getSmsInPhone", ex.getMessage());
		} 
		return smsBuilder.toString();
	}

}

 

其他配置请到github上看。

  • 大小: 126.7 KB
  • 大小: 10.1 KB
1
0
分享到:
评论

相关推荐

    andoid打包短信发送到gmail邮箱实现代码

    本篇文章将详细讲解如何通过编写Android应用,将短信打包并发送到Gmail邮箱,实现自动备份功能。 首先,为了实现这个功能,我们需要在Android手机上配置好Gmail邮箱账户,以便于程序能够发送邮件。用户需要在手机的...

    安卓Android源码——Gmail备份手机短信源码.zip

    这个压缩包文件“安卓Android源码——Gmail备份手机短信源码.zip”提供了一个示例,展示了如何利用Android SDK将手机短信备份到Gmail邮箱中。通过分析这个源码,我们可以学习到以下几个关键知识点: 1. **Android...

    Android Gmail备份手机短信源码-IT计算机-毕业设计.zip

    这个项目的核心功能是实现将手机上的短信备份到Gmail邮箱,这涉及到Android系统的API交互、网络通信以及数据存储等多个方面的知识。 首先,我们要理解Android应用程序开发的基础。Android是由Google主导开发的开源...

    android手机短信源码

    4. **备份和恢复机制**:Gmail备份功能意味着源码会涉及网络通信,可能使用了Google的Gmail API或者实现了SMTP协议来发送短信数据到Gmail邮箱。这将涵盖网络请求的实现,如使用HttpURLConnection或OkHttp库。 5. **...

    android 下gmail邮件包括附件发送和接收

    在Android平台上,Gmail邮件的发送和接收是开发者经常遇到的任务,特别是在处理包含附件的邮件时,这需要对Android的Mail API和Gmail服务有深入的理解。以下将详细阐述这个主题,包括邮件的构建、附件处理以及使用...

    AndroidGmail备份手机短信源码.zip

    【Android Gmail备份手机短信源码】是一个针对Android操作系统开发的应用程序源码,它允许用户将手机中的短信备份到Gmail邮箱中。这个功能对于数据安全和管理个人通信记录非常重要,尤其是当你需要换新手机或者想要...

    Android Gmail备份手机短信源码.rar

    在Android平台上,Gmail备份手机短信的功能是一种常见的需求,它允许用户将重要的短信保存到Gmail账户中,以防数据丢失。这份"Android Gmail备份手机短信源码.rar"提供了实现这一功能的具体代码,对于想要深入理解...

    Android程序研发源码Android Gmail备份手机短信源码.rar

    在Android平台上,开发一款应用程序来备份手机短信到Gmail是一项常见的任务,这有助于用户保护重要的信息免受意外丢失。这份名为"Android程序研发源码Android Gmail备份手机短信源码.rar"的压缩包文件包含了实现这一...

    Android Gmail备份手机短信源码.zip

    标题中的“Android Gmail备份手机短信源码.zip”表明这是一个关于Android平台上的应用程序,该程序能够将手机中的短信备份到Gmail邮箱中。这个项目可能是为了帮助用户方便地管理和保存他们的短信记录,防止数据丢失...

    Gmail邮箱检测工具Gmail Notifier Pro 5.3中文版.rar

    Gmail邮箱检测工具Gmail Notifier Pro是一款WINDOWS客户端程序,能够直接对Gmail邮箱进行操作,支持单帐号或多帐号同时登陆,运行后可以设定的时间自动检测邮箱中是否有新邮件,有新邮件时会语音提醒你。...

    Android应用源码之Gmail备份手机短信【源码】_Android.zip

    该压缩包文件“Android应用源码之Gmail备份手机短信【源码】_Android.zip”包含了一个Android应用程序的源代码,其主要功能是允许用户将手机中的短信备份到Gmail邮箱。通过分析这个源码,我们可以深入理解Android...

    android使用邮箱发送验证码

    在Android应用中,我们通常使用SMTP服务器来发送邮件,比如Gmail的SMTP服务器。 4. **JavaMail API**:在Android中发送邮件,开发者通常会使用JavaMail API。这是一个开放源代码的邮件处理库,可以处理SMTP、POP3和...

    注册免费的Gmail企业邮箱

    配置Outlook以接收和发送Gmail企业邮箱中的邮件,需要以下步骤: 1. **在Gmail账户中启用IMAP**:登录你的Gmail账户,进入设置,选择启用IMAP服务,并保存更改。 2. **打开Outlook并添加新账户**:在Outlook中,...

    gmail邮箱上传工具 完全免费滴 网络硬盘

    其中一个创新的应用就是利用Gmail邮箱服务,开发出的上传工具,这种工具不仅打破了传统邮箱附件大小的限制,还提供了一种全新的网络硬盘使用体验。 标题中提到的“gmail邮箱上传工具 完全免费滴 网络硬盘”表明了该...

    安卓Android源码——Gmail备份手机短信【源码】.zip

    在安卓平台上,开发人员可以利用Android的开放源代码特性来实现各种创新功能,例如将手机短信备份到Gmail。这份“安卓Android源码——Gmail备份手机短信【源码】.zip”提供了一种实现此类功能的具体实现。下面将详细...

Global site tag (gtag.js) - Google Analytics