现在的位置: 首页 > 综合 > 正文

Android 短信监听

2015年11月14日 ⁄ 综合 ⁄ 共 699字 ⁄ 字号 评论关闭

Android中实现短信监听比较简单,只需要定义一个类,让这个类继承 ContentObserver ,复写SmsObserver函数,并复写OnChange()函数,该函数只要检测到有短信发送就会被调用。

我们只需要在该函数中定义一个游标 Cursor 去查询 Uri接口:content:sms//outbox  即可。实现代码如下:

// 监听发送的短信
private final class SmsObserver extends ContentObserver {
    public SmsObserver(Handler handler) {
        super(handler);
    }
    //检测到短信就回调用onChange 函数
    public void onChange(boolean selfChange) 
    {
        ContentResolver resolver = getContentResolver();
        // 查到发出的短信,
        Uri uri = Uri.parse("content://sms/outbox");
        Cursor cursor = resolver.query(uri, new String[] { "date",
                "address", "body" }, null, null, "_id desc limit 1");
        flag = flag_new;
        flag_new = cursor.moveToNext();
        boolean te1 = fg;
        // 如果上升沿检测到有短信发出
        fg = ((!flag) && (flag_new));
        boolean te2 = fg;
        fg_more = (!te1) && (te2);
    }
}

不过当监听到有短信发送出去时,OnChange函数会被多次调用,这个问题必须注意。

抱歉!评论已关闭.