短信备份,插入一条新的短信
package com.itheima74.test;import android.content.ContentResolver;import android.content.ContentValues;import android.database.Cursor;import android.net.Uri;import android.os.Bundle;import andr
·
package com.itheima74.test; import android.content.ContentResolver; import android.content.ContentValues; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.support.v7.app.AppCompatActivity; import android.util.Xml; import android.view.View; import android.widget.Toast; import org.xmlpull.v1.XmlSerializer; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; /** * 1.通过ContentResolver对象获取系统所有短信 * 2.通过XmlSerializer对象序列化短信到sd卡 * 3.通过ContentResolver对象插入一条新的短信 * 4.所需权限:READ_SMS,WRITE_SMS,WRITE_EXTERNAL_STORAGE */ public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } // 点击按钮,进行短信备份 public void click1(View view) { ContentResolver contentResolver = getContentResolver(); Cursor cursor = contentResolver.query(Uri.parse("content://sms/"), new String[]{"address", "body", "date"}, null, null, null); // 序列化短信到sd卡 FileOutputStream fos = null; XmlSerializer xmlSerializer = Xml.newSerializer(); try { fos = new FileOutputStream(new File(Environment.getExternalStorageDirectory() + "/smsbackup.xml")); xmlSerializer.setOutput(fos, "utf-8"); xmlSerializer.startDocument("utf-8", true); xmlSerializer.startTag(null, "smss"); if (cursor != null && cursor.getCount() > 0) { while (cursor.moveToNext()) { xmlSerializer.startTag(null, "sms"); xmlSerializer.startTag(null, "address"); xmlSerializer.text(cursor.getString(0)); xmlSerializer.endTag(null, "address"); xmlSerializer.startTag(null, "body"); xmlSerializer.text(cursor.getString(1)); xmlSerializer.endTag(null, "body"); xmlSerializer.startTag(null, "date"); xmlSerializer.text(cursor.getString(2)); xmlSerializer.endTag(null, "date"); xmlSerializer.endTag(null, "sms"); } } xmlSerializer.endTag(null, "smss"); xmlSerializer.endDocument(); Toast.makeText(this, "备份成功", Toast.LENGTH_SHORT).show(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (fos != null) { fos.close(); } } catch (IOException e) { e.printStackTrace(); } } } // 点击按钮,插入一条短信 public void click2(View view) { ContentResolver contentResolver = getContentResolver(); ContentValues values = new ContentValues(); values.put("address", "110"); values.put("body", "马上过来一趟,否则后果自负!"); values.put("date", System.currentTimeMillis()); contentResolver.insert(Uri.parse("content://sms"), values); Toast.makeText(this, "插入成功", Toast.LENGTH_SHORT).show(); } }
更多推荐



所有评论(0)