不知道大家做拦截短信是怎么实现的;也许有人是通过广播接收器来实现的,但这种实现方式并不是很靠谱,有些手机内部就注册广播,或者手机上安装的其他的软件,例如:
微信,91短信等…,因此你通过广播接收器的方式就无法实现短信拦截功能,在这里向大家推荐一种方法:遍历系统短信库;不多说了 直接上代码:
// 短信拦截监听
public interface OnInterceptListener{
public void onSuccess(String smsbody);
public void onFail();
}
/**
* 遍历系统短信库
* @param msgStr
* 短信内容
*/
public void readSysMsgTone(String msgStr,OnInterceptListener listener) {
String smsbody = "";
Cursor cursor = null;
cursor = ((Activity) mContext).managedQuery(Uri.parse("content://sms/inbox"), new String[] { "body" }, "body like '%" + msgStr
+ "%'", null, "date desc");
if (cursor != null) {
try {
if (cursor.moveToFirst()) { // 获取第一条短信内容
smsbody = cursor.getString(cursor.getColumnIndex("body"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
cursor.close();
if (!TextUtils.isEmpty(smsbody))
listener.onSuccess(smsbody);
else
listener.onFail();
}
}else {
listener.onFail();
}
}
上面定义个接口用监听遍历短信库是否取到最新和符合自己条件的短信;怎么调用这里就不多讲了,相信有点android编程经验的同学都知道;就这么多了,希望能帮助到大家,欢迎大家提出意见;也欢迎大家提供更好的方法;