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

本文介绍了一个Android应用程序,该程序能够将手机短信整合并备份到Gmail邮箱。用户可以设置日期范围,程序会自动筛选指定日期内的短信,并通过邮件发送。主要代码涉及内容解析、日期处理和邮件发送,提供了GitHub链接供详细查看。
摘要由CSDN通过智能技术生成

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

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

查看效果:

16013Bb5-0.gif 

16013A440-1.gif

可以把几天的短信打包发送到自己的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上看。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值