码迷,mamicode.com
首页 > 其他好文 > 详细

内容观察者实现短信监听

时间:2017-09-04 09:51:05      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:tin   div   pac   ext   回调   private   原理   move   new   

内容观察者实现短信监听

通过内容观察者监听短信是否发生变化,如果发生变化,就用内容提供者读取短信的内容。

原理:

当短信发生变化(比如说来短信),短信应用就会通知内容观察者我的短信发生了变化,并把变化位置短信的uri传过来,有uri之后,内容提供者就可以很方便的读取短信内容了,不过肯定要保证权限够。

技术分享

 

package com.example.duanxinjianting;

import android.app.Activity;
import android.database.ContentObserver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends Activity {
    private MyObserver observer;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        observer=new MyObserver(new Handler());
        //注册一个内容观察者(观察指定数据)
        Uri uri=Uri.parse("content://sms");
        getContentResolver().registerContentObserver(uri,true,observer);
    }
    /**
     * 内容观察者
     * */
    private class MyObserver extends ContentObserver{

        public MyObserver(Handler handler) {
            super(handler);
        }
        /**
         * 当被观察的数据发生变化,就回调此方法
         * */
        @Override
        public void onChange(boolean selfChange, Uri uri) {
            Log.d("bh",uri.toString());
            Cursor cursor=getContentResolver().query(uri,null,null,null,null);
            while(cursor.moveToNext()){
                int index=cursor.getColumnIndex("body");
                String body=cursor.getString(index);
                Log.d("bh",body);
            }
        }
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        //卸载内容观察者
        getContentResolver().unregisterContentObserver(observer);
    }
}

 

内容观察者实现短信监听

标签:tin   div   pac   ext   回调   private   原理   move   new   

原文地址:http://www.cnblogs.com/Renyi-Fan/p/7472026.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!