Android之短信备份

来源:互联网 发布:评估数据库表的设计 编辑:程序博客网 时间:2024/04/29 23:36

写短信备份的简单应用主要是为了使用xml的序列化,下面是读取短信数据库中短信信息,并将其转化成xml文件

                                int index = 0;Uri uri = Uri.parse("content://sms");// 读取短信Cursor cursor = getContentResolver().query(uri, new String[] { "address", "date", "type", "body" },null, null, null);// 获取SD卡路径String path = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator+ "sms_backup.xml";// 备份短信的总数int count = cursor.getCount();progressDialog.setMax(count);if (count > 0) {try {File file = new File(path);FileOutputStream fos = new FileOutputStream(file);// 序列化数据库中读取的数据,放到xml中XmlSerializer serializer = Xml.newSerializer();serializer.setOutput(fos, "utf-8");serializer.startDocument("utf-8", true);// 独立的xml,开始结束配套serializer.startTag(null, "smss"); // 第二个参数是开始节点while (cursor.moveToNext()) {serializer.startTag(null, "sms");serializer.startTag(null, "address");serializer.text(cursor.getString(0));serializer.endTag(null, "address");serializer.startTag(null, "date");serializer.text(cursor.getString(1));serializer.endTag(null, "date");serializer.startTag(null, "type");serializer.text(cursor.getString(2));serializer.endTag(null, "type");serializer.startTag(null, "body");serializer.text(cursor.getString(3));serializer.endTag(null, "body");serializer.endTag(null, "sms");index = index + 1;progressDialog.setProgress(index);if (index == cursor.getCount()) {progressDialog.dismiss();}}serializer.endTag(null, "smss");serializer.endDocument();} catch (Exception e) {e.printStackTrace();}} else {runOnUiThread(new Runnable() {public void run() {Toast.makeText(getApplicationContext(), "没有短信可备份", 0).show();}});}};


1 0