public class SmsModel implements ISmsModel {
// 查找手机数据库,查找所有的会话信息
@Override
public List<Conversation> findAllConversations() {
MyApplication context = MyApplication.getApp();
ContentResolver r = context.getContentResolver();
Uri uri=Uri.parse("content://mms-sms/conversations/");
String[] columns={
"thread_id" ,
//0
"address" ,
//1
"body" ,
//2
"date"
//3
};
Cursor c = r.query(uri, columns, null, null, "date desc");
List<Conversation> cs = new ArrayList<Conversation>();
while(c.moveToNext()){
Conversation con = new Conversation();
con.setId(c.getInt(0));
con.setNumber(c.getString(1));
con.setBody(c.getString(2));
con.setDate(c.getLong(3));
cs.add(con);
}
c.close();
return cs;
//测试uri返回的字段都有哪些
// Cursor c = r.query(uri, null, null, null, null);
// c.moveToFirst(); //第一条
// for(int i=0; i<c.getColumnCount(); i++){
// Log.i("info", c.getColumnName(i) +" "+c.getString(i));
// }
// c.close();
}
// 通过会话ID 查找所有的短息
@Override
public List<Sms> loadSmsByThreadId(int threadId) {
MyApplication context = MyApplication.getApp();
ContentResolver r = context.getContentResolver();
Uri uri = Uri.parse("content://sms/");
String[] columns={
"_id",
//0
"body",
//1
"date",
//2
"type"
//3
};
Cursor c=r.query(uri, columns, "thread_id=?", new String[]{""+threadId}, "date asc");
List<Sms> smss = new ArrayList<Sms>();
while(c.moveToNext()){
Sms s = new Sms(c.getInt(0), c.getString(1), c.getLong(2), c.getInt(3));
smss.add(s);
}
c.close();
return smss;
}
}