【 tulaoshi.com - 编程语言 】
                             
                            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上看。