Android中 備份短信 還原短信
備份短信
讀取手機里的短信,備份成xml文件保存到SD卡上。
xml文件就只有一個button控件,就不再給出xml代碼了。
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;import org.xmlpull.v1.XmlSerializer; import android.app.Activity; import android.content.ContentResolver; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.util.Xml; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity { private Button bt_readsms; /** * 短信備份的文件對象 */ private File smsBackUpFile; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bt_readsms = (Button) findViewById(R.id.bt_readsms); bt_readsms.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { try { //創建一個存儲備份短信的文件對象 smsBackUpFile = new File(Environment.getExternalStorageDirectory(),"sms.xml"); //創建一個xml文件的生成器。 XmlSerializer serializer = Xml.newSerializer(); //完成序列化器初始化操作。 FileOutputStream os = new FileOutputStream(smsBackUpFile); serializer.setOutput(os, "utf-8"); //內容提供者。 //獲取到一個數據庫的內容的解析者 ContentResolver resolver = getContentResolver(); //游標(結果集) Cursor cursor = resolver.query(Uri.parse("content://sms"), new String[]{"address","date","type","body"}, null, null, null); //生成xml文件的頭 serializer.startDocument("utf-8", true); serializer.startTag(null, "smss"); while(cursor.moveToNext()){ serializer.startTag(null, "sms"); String address = cursor.getString(0); String date = cursor.getString(1); String type = cursor.getString(2); String body = cursor.getString(3); serializer.startTag(null, "address"); System.out.println("短信地址:"+address); serializer.text(address); serializer.endTag(null, "address"); serializer.startTag(null, "date"); System.out.println("短信時間:"+date); serializer.text(date); serializer.endTag(null, "date"); serializer.startTag(null, "body"); System.out.println("短信內容:"+body); serializer.text(body); serializer.endTag(null, "body"); serializer.startTag(null, "type"); System.out.println("短信類型:"+type); serializer.text(type); serializer.endTag(null, "type"); serializer.endTag(null, "sms"); } cursor.close(); serializer.endTag(null, "smss"); serializer.endDocument(); os.close(); Toast.makeText(getApplicationContext(), "備份完成", 1).show(); } catch (Exception e) { e.printStackTrace(); } } }); } } </pre><br />
還原短信
通過代碼程序控制向手機發送短信,10s后手機可以接收到短信
xml文件就只有一個button控件,就不再給出xml代碼了。
import android.app.Activity;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } /** * 還原一條短信 * * @param view */ public void click(View view) { new Thread(){ public void run() { try { //等待10秒鐘的時間 Thread.sleep(10000); } catch (InterruptedException e) { e.printStackTrace(); } // 獲取到一個數據庫的內容的解析者 ContentResolver resolver = getContentResolver(); ContentValues values = new ContentValues(); values.put("address", "95533");//指定短信的發件人 values.put("date", System.currentTimeMillis()); values.put("body", "尊敬的客戶,您的銀行卡余額還有300萬"); values.put("type", "1"); resolver.insert(Uri.parse("content://sms"), values); }; }.start(); } } </pre><br />
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!