首页 > 学院 > 开发设计 > 正文

短信备份,插入一条新的短信

2019-11-07 23:44:02
字体:
来源:转载
供稿:网友
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();    }}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表