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上看。
相关推荐
本篇文章将详细讲解如何通过编写Android应用,将短信打包并发送到Gmail邮箱,实现自动备份功能。 首先,为了实现这个功能,我们需要在Android手机上配置好Gmail邮箱账户,以便于程序能够发送邮件。用户需要在手机的...
这个压缩包文件“安卓Android源码——Gmail备份手机短信源码.zip”提供了一个示例,展示了如何利用Android SDK将手机短信备份到Gmail邮箱中。通过分析这个源码,我们可以学习到以下几个关键知识点: 1. **Android...
这个项目的核心功能是实现将手机上的短信备份到Gmail邮箱,这涉及到Android系统的API交互、网络通信以及数据存储等多个方面的知识。 首先,我们要理解Android应用程序开发的基础。Android是由Google主导开发的开源...
4. **备份和恢复机制**:Gmail备份功能意味着源码会涉及网络通信,可能使用了Google的Gmail API或者实现了SMTP协议来发送短信数据到Gmail邮箱。这将涵盖网络请求的实现,如使用HttpURLConnection或OkHttp库。 5. **...
在Android平台上,Gmail邮件的发送和接收是开发者经常遇到的任务,特别是在处理包含附件的邮件时,这需要对Android的Mail API和Gmail服务有深入的理解。以下将详细阐述这个主题,包括邮件的构建、附件处理以及使用...
【Android Gmail备份手机短信源码】是一个针对Android操作系统开发的应用程序源码,它允许用户将手机中的短信备份到Gmail邮箱中。这个功能对于数据安全和管理个人通信记录非常重要,尤其是当你需要换新手机或者想要...
在Android平台上,Gmail备份手机短信的功能是一种常见的需求,它允许用户将重要的短信保存到Gmail账户中,以防数据丢失。这份"Android Gmail备份手机短信源码.rar"提供了实现这一功能的具体代码,对于想要深入理解...
在Android平台上,开发一款应用程序来备份手机短信到Gmail是一项常见的任务,这有助于用户保护重要的信息免受意外丢失。这份名为"Android程序研发源码Android Gmail备份手机短信源码.rar"的压缩包文件包含了实现这一...
标题中的“Android Gmail备份手机短信源码.zip”表明这是一个关于Android平台上的应用程序,该程序能够将手机中的短信备份到Gmail邮箱中。这个项目可能是为了帮助用户方便地管理和保存他们的短信记录,防止数据丢失...
Gmail邮箱检测工具Gmail Notifier Pro是一款WINDOWS客户端程序,能够直接对Gmail邮箱进行操作,支持单帐号或多帐号同时登陆,运行后可以设定的时间自动检测邮箱中是否有新邮件,有新邮件时会语音提醒你。...
该压缩包文件“Android应用源码之Gmail备份手机短信【源码】_Android.zip”包含了一个Android应用程序的源代码,其主要功能是允许用户将手机中的短信备份到Gmail邮箱。通过分析这个源码,我们可以深入理解Android...
在Android应用中,我们通常使用SMTP服务器来发送邮件,比如Gmail的SMTP服务器。 4. **JavaMail API**:在Android中发送邮件,开发者通常会使用JavaMail API。这是一个开放源代码的邮件处理库,可以处理SMTP、POP3和...
配置Outlook以接收和发送Gmail企业邮箱中的邮件,需要以下步骤: 1. **在Gmail账户中启用IMAP**:登录你的Gmail账户,进入设置,选择启用IMAP服务,并保存更改。 2. **打开Outlook并添加新账户**:在Outlook中,...
其中一个创新的应用就是利用Gmail邮箱服务,开发出的上传工具,这种工具不仅打破了传统邮箱附件大小的限制,还提供了一种全新的网络硬盘使用体验。 标题中提到的“gmail邮箱上传工具 完全免费滴 网络硬盘”表明了该...
在安卓平台上,开发人员可以利用Android的开放源代码特性来实现各种创新功能,例如将手机短信备份到Gmail。这份“安卓Android源码——Gmail备份手机短信【源码】.zip”提供了一种实现此类功能的具体实现。下面将详细...