短信备份,插入一条新的短信
2017-02-25 09:23
190 查看
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(); } }
相关文章推荐
- 无废话Android之listview入门,自定义的数据适配器、采用layoutInflater打气筒创建一个view对象、常用数据适配器ArrayAdapter、SimpleAdapter、使用ContentProvider(内容提供者)共享数据、短信的备份、插入一条记录到系统短信应用(3)
- 内容观察者-短信监听-备份-插入短信
- Android 插入一条短信
- Android-插入短信及备份手机中的短信到SD卡
- android中插入一条SMS短信内容(可用于恢复SMS短信操作)
- Android 使用内容解析者往短信数据库里插入一条数据
- android ContentProvider访问、备份、插入短信
- 插入一条记录到系统短信应用
- 向Android手机中插入一条短信 及联系人获取
- android101 获取、备份、插入短信
- [android] 插入一条记录到系统短信应用里
- Android ContentProvider 查询备份插入短信
- 备份短信和添加短信
- 131.短信备份优化(接口实现)
- mysql 定时每秒插入一条数据
- 获取最后插入的一条记录,使用函数scope_indentity()
- 插入备份数据 报 IDENTITY_INSERT 为 ON 时解决方法
- extjs combo中给Store插入一条数据
- 短信备份
- 老婆的最后一条短信 看完我哭了