Android 通过监听收信箱获取短信,Cursor对象字段的详细信息
最近在做一个短信核查的功能,大致就是手机接收到短信之后,通过发送者号码的特征,短信中心等条件,判断是否可疑短信,然后上传到后台。
一开始用接收广播的方式,比较顺利,代码网上有很多,这里不详细说。
但是有部分手机,酷派、VIVO等品牌中的一些型号,特么的连广播都接收不到,跑不到onReceive()方法里面,接下来的操作也就无从继续了。
所以需要通过Contacts Provider,读取手机内部的数据库,获取短信信息。
ContentResolver cr = getContentResolver();
String[] projection = new String[] {
"service_center","date","address","body","date_sent"};// "短信中心号码", "发送时间", "发送方号码", "短信内容"
String where = "(type=1) and date>" + lastTime;
Cursor cur = cr.query(Uri.parse("content://sms/"), projection, where, null, "date desc")