利用contentProvider获取短信内容(SimpleDataFormater的应用)

利用contentProvider获取短信内容(SimpleDataFormater的应用)

作者:ligang305 | 出处:博客园 | 2012/7/20 7:59:01 | 阅读 25
public static List<SmsInfo> getSmsInfos(Context context){
// 获取到短信内容提供者的uri
Uri uri = Uri.parse(path);
ContentResolver  cr = context.getContentResolver();
//_id , address , body ,date ,type
List<SmsInfo> smsinfos = new ArrayList<SmsInfo>();
Cursor cursor = cr.query(uri, new String[]{"_id","address","body","date","type"},
null,
null,
"date desc");
while(cursor.moveToNext()){
SmsInfo info = new SmsInfo();
String address = cursor.getString(cursor.getColumnIndex("address"));
info.setAddress(address);
String body = cursor.getString(cursor.getColumnIndex("body"));
info.setBody(body);
String date = cursor.getString(cursor.getColumnIndex("date"));
//定义字符串的日期格式化器
SimpleDateFormat dataFormater = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date d = new Date(Long.parseLong(date));
String strdate = dataFormater.format(d);
info.setDate(strdate);
String type = cursor.getString(cursor.getColumnIndex("type"));
if("1".equals(type)){
info.setType("发送");
}else if("2".equals(type)){
info.setType("接受");
}
smsinfos.add(info);
}
return smsinfos;
}
/*
* 把联系人的集合信息,以xml的格式,写到一个输出流中
*/
public static void saveSms(List<SmsInfo> infos , OutputStream os) throws Exception{
XmlSerializer serializer = Xml.newSerializer();
serializer.setOutput(os, "UTF-8");
serializer.startDocument("UTF-8"true);
serializer.startTag(null"smss");
for (SmsInfo info : infos){
serializer.startTag(null"sms");
serializer.startTag(null"address");
serializer.text(info.getAddress());
serializer.endTag(null"address");
serializer.startTag(null"body");
serializer.text(info.getBody());
serializer.endTag(null"body");
serializer.startTag(null"date");
serializer.text(info.getDate());
serializer.endTag(null"date");
serializer.startTag(null"type");
serializer.text(info.getType());
serializer.endTag(null"type");
serializer.endTag(null"sms");
}
serializer.endTag(null"smss");
serializer.endDocument();
//注意  一定要flush这个 输出流
os.flush();
os.close();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值