广

android开发

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

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

    2018-04-07 07:48:54 次阅读 稿源:互联网
    广告
    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上看。

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告