短信拦截,总是延时一条短信,求解。
HashSet set=new HashSet();
try{
ContentResolver cr=getContentResolver();
String[] exct=new String[]{"_id","thread_id","address","person",
"body","date","type"};
Uri uri=Uri.parse(SMS_URI_ALL);
Cursor cursor=cr.query(uri, exct, null, null, "date desc");
if(cursor.moveToNext()){
Cursor cur=cr.query(uri, exct, null, null, "date desc");
while(cur.moveToNext()){
sms=new Sms();
sms.setPersion(cur.getString(3));
sms.setAddress((cur.getString(2)));
sms.setBody(cur.getString(4));
sms.setThread_id(cur.getString(1));
SimpleDateFormat dateFormat=new SimpleDateFormat("MM-dd");
Date date=new Date(Long.parseLong(cur.getString(5)));
sms.setDate(dateFormat.format(date));
SimpleDateFormat datetimeFormat=new SimpleDateFormat("hh:mm");
Date datetime=new Date(Long.parseLong(cur.getString(5)));
sms.setDatetime(datetimeFormat.format(datetime));
sms.setType(cur.getString(6));
if(set.add(sms.getThread_id())){
list.add(sms);
}
}
cur.close();
}