服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Android - andoid打包短信发送到gmail邮箱实现代码

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

2021-01-23 15:59Android开发网 Android

andriod短信整合备份发送到gmail邮箱,需要在andoid手机配置好gmail邮箱,下面是具体的实现代码,感兴趣的朋友可以参考下哈

andriod短信整合备份发送到gmail邮箱,需要在andoid手机配置好gmail邮箱
github代码 https://github.com/zhwj184/smsbackup
查看效果:
andoid打包短信发送到gmail邮箱实现代码 
andoid打包短信发送到gmail邮箱实现代码
可以把几天的短信打包发送到自己的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上看。

延伸 · 阅读

精彩推荐
  • AndroidAndroid界面效果UI开发资料汇总(附资料包)

    Android界面效果UI开发资料汇总(附资料包)

    android ui界面设计,友好的界面会提高用户体验度;同时也增强了android ui界面设计的难度,本文提供了一些常用开发资料(有下载哦)感兴趣的朋友可以了解下...

    Android开发网4652021-01-03
  • AndroidAndroid中AsyncTask详细介绍

    Android中AsyncTask详细介绍

    这篇文章主要介绍了Android中AsyncTask详细介绍,AsyncTask是一个很常用的API,尤其异步处理数据并将数据应用到视图的操作场合,需要的朋友可以参考下...

    Android开发网7432021-03-11
  • AndroidAndroid实现Service获取当前位置(GPS+基站)的方法

    Android实现Service获取当前位置(GPS+基站)的方法

    这篇文章主要介绍了Android实现Service获取当前位置(GPS+基站)的方法,较为详细的分析了Service基于GPS位置的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    Ruthless8332021-03-31
  • AndroidAndroid编程解析XML方法详解(SAX,DOM与PULL)

    Android编程解析XML方法详解(SAX,DOM与PULL)

    这篇文章主要介绍了Android编程解析XML方法,结合实例形式详细分析了Android解析XML文件的常用方法与相关实现技巧,需要的朋友可以参考下...

    liuhe68810042021-05-03
  • Android汇总Android视频录制中常见问题

    汇总Android视频录制中常见问题

    这篇文章主要汇总了Android视频录制中常见问题,帮助大家更好地解决Android视频录制中常见的问题,需要的朋友可以参考下...

    yh_thu5192021-04-28
  • AndroidAndroid程序设计之AIDL实例详解

    Android程序设计之AIDL实例详解

    这篇文章主要介绍了Android程序设计的AIDL,以一个完整实例的形式较为详细的讲述了AIDL的原理及实现方法,需要的朋友可以参考下...

    Android开发网4622021-03-09
  • AndroidAndroid CardView+ViewPager实现ViewPager翻页动画的方法

    Android CardView+ViewPager实现ViewPager翻页动画的方法

    本篇文章主要介绍了Android CardView+ViewPager实现ViewPager翻页动画的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    Abby代黎明9592022-03-02
  • AndroidAndroid实现固定屏幕显示的方法

    Android实现固定屏幕显示的方法

    这篇文章主要介绍了Android实现固定屏幕显示的方法,实例分析了Android屏幕固定显示所涉及的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    鉴客6182021-03-27