手动生成XML

    xiaoxiao2022-06-30  55

    JAVAbean

    public class Sms { private int id; private int type; private String address; private long date; private String body; public Sms() { super(); // TODO Auto-generated constructor stub } public Sms(int id, int type, String address, long date, String body) { super(); this.id = id; this.type = type; this.address = address; this.date = date; this.body = body; } public int getId() { return id; } public void setId(int id) { this.id = id; } public int getType() { return type; } public void setType(int type) { this.type = type; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public long getDate() { return date; } public void setDate(long date) { this.date = date; } public String getBody() { return body; } public void setBody(String body) { this.body = body; } @Override public String toString() { return "Sms [id=" + id + ", type=" + type + ", address=" + address + ", date=" + date + ", body=" + body + "]"; } }

    生成xml

    public class MainActivity extends Activity implements OnClickListener { List<Sms> list = new ArrayList<Sms>(); private Button back1; private Button back2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); redSms(); } // 初始化控件 private void init() { back1 = (Button) findViewById(R.id.back1); back2 = (Button) findViewById(R.id.back2); back1.setOnClickListener(this); back2.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.back1: StringBuffer sb = new StringBuffer(); sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); sb.append("<smss>"); for (Sms s : list) { sb.append("<sms>"); sb.append("<date>"); sb.append(s.getDate()); sb.append("</date>"); sb.append("<type>"); sb.append(s.getType()); sb.append("</type>"); sb.append("<address>"); sb.append(s.getAddress()); sb.append("</address>"); sb.append("<body>"); sb.append(s.getBody()); sb.append("</body>"); sb.append("</sms>"); } sb.append("</smss>"); try { File file = new File(Environment.getExternalStorageDirectory(), "back.xml"); FileOutputStream out = new FileOutputStream(file); out.write(sb.toString().getBytes()); Toast.makeText(this, "备份成功", 0).show(); } catch (IOException e) { Toast.makeText(this, "备份失败", 0).show(); e.printStackTrace(); } break; case R.id.back2: XmlSerializer serializer = Xml.newSerializer(); try { File file = new File(Environment.getExternalStorageDirectory(), "back2.xml"); FileOutputStream out = new FileOutputStream(file); serializer.setOutput(out, "utf-8"); // boolean 代表是否独立 serializer.startDocument("utf-8", true); // 第一个参数代表命名空间 serializer.startTag(null, "smss"); for (Sms sms : list) { serializer.startTag(null, "sms"); serializer.attribute(null, "id", sms.getId() + ""); serializer.startTag(null, "date"); serializer.text(sms.getDate() + ""); serializer.endTag(null, "date"); serializer.startTag(null, "type"); serializer.text(sms.getType() + ""); serializer.endTag(null, "type"); serializer.startTag(null, "body"); serializer.text(sms.getBody()); serializer.endTag(null, "body"); serializer.startTag(null, "address"); serializer.text(sms.getAddress()); serializer.endTag(null, "address"); serializer.endTag(null, "sms"); } serializer.endTag(null, "smss"); serializer.endDocument(); Toast.makeText(this, "备份成功", 0).show(); } catch (Exception e) { Toast.makeText(this, "备份失败", 0).show(); e.printStackTrace(); } break; default: break; } } // 读取系统短信 private void redSms() { ContentResolver contentResolver = getContentResolver(); Cursor cursor = contentResolver.query(Uri.parse("content://sms"), new String[] { "type", "date", "body", "address" }, null, null, null); while (cursor.moveToNext()) { int type = cursor.getInt(cursor.getColumnIndex("type")); long date = cursor.getLong(cursor.getColumnIndex("date")); String body = cursor.getString(cursor.getColumnIndex("body")); String address = cursor.getString(cursor.getColumnIndex("address")); list.add(new Sms(0, type, address, date, body)); } } }
    转载请注明原文地址: https://ju.6miu.com/read-1125702.html

    最新回复(0)