您的位置:首页 > 产品设计 > UI/UE

四大组件contentProvider短信数据库xml的编写(query()各参数含义)

2017-11-13 19:26 316 查看
try {
//[1]获取xmlseverlier实例
XmlSerializer xml = Xml.newSerializer();
//[2]设置序列化参数
File file = new File(Environment.getExternalStorageDirectory().getPath(),"smsBackUp.xml");
System.out.println(file.exists() + "");
FileOutputStream fos = new FileOutputStream(file);
xml.setOutput(fos, "utf-8");
//[3]设置开始
xml.startDocument("utf-8", true);
//[4]设置根开始结束结点
xml.startTag(null, "smss");

//[5]由内容提供者获得短信对象

Uri uri = Uri.parse("content://sms");
//(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)

/** uri路径
* projection:要查询出来的列名。相当于select语句select关键字后面的部分。
* selection:查询条件子句,相当于select语句where关键字后面的部分,在条件子句允许使用占位符“?”
* selectionArgs:对应于selection语句中占位符的值,值在数组中的位置与占位符在语句中的位置必须一致,否则就会有异常。
* groupBy:相当于select语句group by关键字后面的部分
* having:相当于select语句having关键字后面的部分 orderBy:相当于select语句order
* by关键字后面的部分,如:personid desc, age asc;
* limit:指定偏移量和获取的记录数,相当于select语句limit关键字后面的部分。*/

Cursor cursor = getContentResolver().query(uri, new String[]{"address","data","body"}, null, null, null);

while(cursor != null && cursor.getCount() > 0) {
String address = cursor.getString(0);
String date = cursor.getString(1);
String  body= cursor.getString(2);

xml.startTag(null, "sms");

xml.startTag(null, "address");
xml.text(address);
xml.endTag(null, "address");

xml.startTag(null, "date");
xml.text(date);
xml.endTag(null, "date");

xml.startTag(null, "body");
xml.text(body);
xml.endTag(null, "body");

xml.endTag(null, "sms");
}
xml.endTag(null, "smss");

Toast.makeText(getApplicationContext(), "ok", 0).show();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: