//根据你的拦截策略,判断是否不对短信进行操作;将短信设置为已读;将短信删除
//TODO
Message msg=smsHandler.obtainMessage();
_smsInfo.action=2;//0不对短信进行操作;1将短信设置为已读;2将短信删除
msg.obj=_smsInfo;
smsHandler.sendMessage(msg);
}
}
if(mCursor!=null)
{
mCursor.close();
mCursor=null;
}
}
}
四、短信处理类
import android.content.ContentValues;
import android.content.Context;
import android.net.Uri;
import android.os.Handler;
import android.os.Message;
/**
* @author 短信的处理
*
*/
public class SmsHandler extends Handler
{
private Context mcontext;
public SmsHandler(Context context)
{
this.mcontext=context;
}
@Override
public void handleMessage(Message msg)
{
SmsInfo smsInfo=(SmsInfo)msg.obj;
if(smsInfo.action==1)
{
ContentValues values = new ContentValues();
values.put("read", "1");
mcontext.getContentResolver().update(Uri.parse("content://sms/inbox"), values, "thread_id=?", new String[]{smsInfo.thread_id});
}
else if(smsInfo.action==2)
{
Uri mUri=Uri.parse("content://sms/");
mcontext.getContentResolver().delete(mUri, "_id=?", new String[]{smsInfo._id});
}
}
}
五、SmsInfo 数据结构
/**
* 主要用于短信拦截
* @author Administrator
*
*/
public class SmsInfo {
public String _id="";
public String thread_id = "";
public String smsAddress = "";
public String smsBody = "";
public String read="";
public int action=0;//1代表设置为已读,2表示删除短信
}
短信拦截大概就是如此了。