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上看。相关阅读:

Android TableLayout数据列表的回显清空实现思路及代码

iOS应用中使用Auto Layout实现自定义cell及拖动回弹

Android中调用系统的文件浏览器及自制简单的文件浏览器

JS模拟bootstrap下拉菜单效果实例

Android开发中使用Volley库发送HTTP请求的实例教程

CSS怎么将背景图左移/上移/右移10px

微软招聘启事引瞩目:Windows或将融合安卓应用

解析Java线程编程中的线程安全与synchronized的使用

javascript 构造函数方式定义对象

升级Win10后如何重新安装系统?几点流程和注意事项介绍

MSSQL分页存储过程完整示例(支持多表分页存储)

win10手机预览版10080怎么快速切换输入键盘

jQuery插件expander实现图片翻转特效

iOS开发之UIKeyboardTypeNumberPad数字键盘自定义按键

android短信到邮箱,Android_andoid打包短信发送到gmail邮箱实现代码,andriod短信整合备份发送到gmail - phpStudy...相关推荐

  1. andoid 打包短信发送到gmail邮箱

    andriod短信整合备份发送到gmail邮箱,需要在andoid手机配置好gmail邮箱 github代码 https://github.com/zhwj184/smsbackup 查看效果: 可以 ...

  2. Spring-Boot整合微信登陆、微信支付、邮箱发送、支付宝支付和阿里云短信

    Spring-Boot整合 1. 发送邮件 2. 支付宝支付 3. 阿里云短信 4. 微信登陆 5. 微信支付 6. Swargger2 前后端API接口信息文档 7. ehcache缓存缓存 8. ...

  3. iPhone上将短信内容发送到指定邮箱的方法

    iPhone上将短信内容发送到指定邮箱的方法 迄今为止,移动应用安全基本聚焦在以下几个方面,一是移动设备管理BYOD(bring your own device),二是移动恶意软件分析,三是移动设备用 ...

  4. Android kotlin 代码设置短信指定SIM卡发送

    Android kotlin 代码设置短信指定SIM卡发送 前言 逻辑 权限 获取全部手机卡信息 修改短信使用的卡 发送短信 完事 前言 在双卡双待,甚至多卡多待的Android设备中,实现调用自己想 ...

  5. java代码进行短信接收_自动化测试-自动获取手机短信验证码

    最近在做生产环境自动化测试,碰到一个难题就是短信验证码的获取,生产环境短信验证码是真实的,不能采用测试环境将短信验证码写成固定的方法解决,我的思路是:做一个apk小程序,将手机上的短信验证码实时读取出 ...

  6. 短视频矩阵源码系统打包.源码

    Masayl是一款基于区块链技术的去中心化应用程序开发平台,可帮助开发者快速.便捷地创建去中心化应用程序.Masayl拥有丰富的API和SDK,为开发者们提供了支持.此外,Masayl还采用了高效的智 ...

  7. 小伙C++代码实现短信表白,软萌甜炸,送给你最喜欢的人!你值得拥有

    **swustoj短信(0332):**某日,小Y同学迷恋上一女生,于是决定向该女生表白.可是,悲剧往往发生在帅哥身上.在小Y同学表白后,该女生发来一短信,该短信由一行字符串组成.并告知小Y同学,如若 ...

  8. 我们公司的短信接口被刷了,瞬间损失两万,怎么解决?(短信接口被盗刷系列1)

    1 我们公司的短信接口被刷了,瞬间损失两万 前两天的中午像往常一样热,太阳不知疲倦的在天空燃烧,热跑了云彩和鸟儿,马上就要点燃空气和我的脑神经.为我和电脑降温的,是我简陋的书桌上的小电扇,没有它的话, ...

  9. 基于 短信认证 通过 华为、H3C 结合 OpenPortal认证计费系统 实现 网络准入 短信验证码 访客实名认证

    基于 短信认证 通过 华为.H3C 结合 OpenPortal认证计费系统 实现 网络准入 短信验证码 访客实名认证 在企业园区网络中,需要结合短信认证实现网络安全准入,访客短信验证码实名认证.方案中 ...

最新文章

  1. python中文版-Python中文版
  2. 存储过程双层循环_mysql嵌套存储过程实现循环嵌套
  3. java定时线程池_java 定时器线程池(ScheduledThreadPoolExecutor)的实现
  4. 工作10年厌倦写代码_厌倦了数据质量讨论?
  5. python将excel导入mysql_Python将Excel数据自动导入MySQL,python,实现,excel,到,中
  6. 虚拟化技术--桌面虚拟化(VDI)
  7. sklearn自定义svm核函数(外部和内部定义)
  8. powerbi python词云图_使用Power BI制作可爱的词云图
  9. 正确使用 realloc()
  10. 2011—2018年软考中级数据库系统工程师历年真题
  11. 清华大学范玉顺互联网与大数据_互联网+时代的互联网思维与大数据思维
  12. TarBase:有实验数据支持的miRNA靶基因数据库
  13. 安规认证的测试项目(工程师必须知道的知识)
  14. 基于Matlab对三自由度并联机构的正逆解
  15. python的算术表达式_python算术表达式
  16. 大数据带来新机遇:如何利用大数据技术优化跨境电商运营?
  17. 【Oracle】基础语句
  18. 双臂二指魔方机器人的制作(一)--总体设计
  19. android 动态扫码框,Android 一行代码接入扫码功能 (CameraX + zxing)持续更新....
  20. word文档找不到smartart_word2003SmartArt在哪里

热门文章

  1. 拥抱PBO(基于项目的组织)聚焦核心价值创造
  2. jni 调用java接口_JNI 调用 JAVA 接口
  3. for语句的执行顺序
  4. AI人脸检测智能分析网关新增车辆检测/车牌识别,支持车辆违停告警
  5. html中如何强制图片不换行,css怎么强制div不换行?
  6. 邮件服务器MailServer之 Hibernate持久层开发
  7. 2020:下一个十年,存储发展的趋势是什么?(全集)
  8. ecshop模板smarty foreach详解
  9. 求a的b次幂的最后3位(难度:1颗星)
  10. 通过GitHub API下载Repository源码Zip文件的方法