`

ContentObserver 用法

阅读更多
  1. public class ScreenTest extends Activity {   
  2.        
  3.     class SmsContent extends ContentObserver{   
  4.         private Cursor cursor = null;   
  5.         public SmsContent(Handler handler) {   
  6.             super(handler);   
  7.         }   
  8.            
  9.         /**  
  10.          * @Description 当短信表发送改变时,调用该方法   
  11.          *              需要两种权限  
  12.          *              android.permission.READ_SMS读取短信  
  13.          *              android.permission.WRITE_SMS写短信  
  14.          * @Author Snake  
  15.          * @Date 2010-1-12  
  16.          */  
  17.         @Override  
  18.         public void onChange(boolean selfChange) {   
  19.             // TODO Auto-generated method stub   
  20.             super.onChange(selfChange);   
  21.             //读取收件箱中指定号码的短信   
  22.             cursor = managedQuery(Uri.parse("content://sms/inbox"), new String[]{"_id""address""read"}, " address=? and read=?"new String[]{"12345678901""0"}, "date desc");   
  23.                
  24.             if (cursor != null){   
  25.                 ContentValues values = new ContentValues();   
  26.                 values.put("read""1");        //修改短信为已读模式   
  27.                 cursor.moveToFirst();   
  28.                 while (cursor.isLast()){   
  29.                     //更新当前未读短信状态为已读   
  30.                     getContentResolver().update(Uri.parse("content://sms/inbox"), values, " _id=?"new String[]{""+cursor.getInt(0)});   
  31.                     cursor.moveToNext();   
  32.                 }   
  33.             }   
  34.         }   
  35.     }   
  36.        
  37.     /** Called when the activity is first created. */  
  38.     @Override  
  39.     public void onCreate(Bundle savedInstanceState) {   
  40.         super.onCreate(savedInstanceState);   
  41.         setContentView(R.layout.main);   
  42.         SmsContent content = new SmsContent(new Handler());   
  43.         //注册短信变化监听   
  44.         this.getContentResolver().registerContentObserver(Uri.parse("content://sms/"), true, content);    
  45.     }   
  46. }  
分享到:
评论
1 楼 songfantasy 2011-07-21  
cursor 不关闭吗??

相关推荐

    Android中内容观察者的使用---- ContentObserver类详解

    Android中内容观察者的使用---- ContentObserver类详解

    详解Android开发中ContentObserver类的使用

    主要介绍了详解Android开发中ContentObserver类的使用,ContentObserver内容观察者主要用来监听uri的改变请情况,需要的朋友可以参考下

    Android 使用ContentObserver监听数据库内容是否更改

    主要介绍了Android 使用ContentObserver监听数据库内容是否更改的相关资料,ContentObserver内容观察者,目的是观察(捕捉)特定Uri引起的数据库的变化,需要的朋友可以参考下

    Android 中自定义ContentProvider与ContentObserver的使用简单实例

    主要介绍了Android 中自定义ContentProvider与ContentObserver的使用简单实例的相关资料,这里提供实例帮助大家学习理解这部分内容,需要的朋友可以参考下

    Android实现短信验证码自动填写

    使用ContentProvider来监听短信数据库的变化,在自定义的ContentObserver当中实现onChange的方法进行监听特定手机号的短信,然后进行信息截取在填充到需要填充的位置。  ContentObserver即为内容监听者,当我们发送...

    疯狂Android讲义源码

     8.3.5 使用特定方法操作SQLite  数据库 327  8.3.6 事务 329  8.3.7 SQLiteOpenHelper类 330  8.4 手势(Gesture) 335  8.4.1 手势检测 335  8.4.2 增加手势 342  8.4.3 识别用户的手势 346  8.5 自动...

    疯狂Android讲义.part2

    8.3.5 使用特定方法操作SQLite 数据库 327 8.3.6 事务 329 8.3.7 SQLiteOpenHelper类 330 8.4 手势(Gesture) 335 8.4.1 手势检测 335 8.4.2 增加手势 342 8.4.3 识别用户的手势 346 8.5 自动朗读(TTS) 347 8.6 ...

    疯狂Android讲义.part1

    8.3.5 使用特定方法操作SQLite 数据库 327 8.3.6 事务 329 8.3.7 SQLiteOpenHelper类 330 8.4 手势(Gesture) 335 8.4.1 手势检测 335 8.4.2 增加手势 342 8.4.3 识别用户的手势 346 8.5 自动朗读(TTS) 347 8.6 ...

    Android编程之监听器用法实例分析

    本文实例讲述了Android编程之监听器用法。分享给大家供大家参考,具体如下: 这里通过监听内容提供者数据变化和监听发送短信进行讲解监听器。如果用户提供者数据发生了变化,监听器立刻就能收到对数据库操作的记录,...

    Android开发技巧总汇(个人总结)

    12.定义ContentObserver,监听某个数据表 21 13.获得手机UA 21 14.清空手机cookies 21 15.建立GPRS连接 21 16.PreferenceActivity 用法 22 17.通过HttpClient从指定server获取数据 22 18.拖动Button获得位置 ...

    android截图事件监听的原理与实现

    上面两种方法均不是万能的,需要结合使用才能达到良好的效果,首先看看如何监控目录 在android中,我们可以通过FileObserver来监听目录变化,先来看看如何使用 private static final File DIRECTORY_PICTURES = ...

    详解Android截屏事件监听

    Android系统没有直接对截屏事件监听的接口,也没有广播,只能自己动手来丰衣足食,一般有三种方法。 利用FileObserver监听某个目录中资源变化情况 利用ContentObserver监听全部资源的变化 监听截屏快捷按键 由于...

    Android 开发技巧

    9.72、定义CONTENTOBSERVER,监听某个数据表 302 9.73、打开照相机 303 9.74、从GALLERY选取图片 303 9.75、打开录音机 303 9.76、语音朗读 303 9.77、手机获取视频流显示在电脑上 305 9.78、蓝牙的使用 313 9.79、...

    platform_packages_services_OmniJaws

    关于 OmniJaws的“另一个天气服务”是一项最小化的服务,可从OpenWeatherMap或Yahoo获取天气数据。 OpenWeatherMap API 重要提示:请从OpenWeatherMap请求您自己的API密钥,为 ,并在...在URI上使用ContentObserver

    packages_apps_OmniJaws

    关于OmniJaws的“另一个天气服务”... 默认状态图标包也已从LockClock中提取客户访问这是一个使用内容提供商访问天气数据的客户端代码示例广播和内容观察员有两种方法可以注册天气数据的更改在URI上使用ContentObserver

    packages_services_OmniJaws

    关于 OmniJaws的“另一个天气服务”是一项最小化的服务,可从OpenWeatherMap或Yahoo获取天气数据。 OpenWeatherMap API 重要提示:请从OpenWeatherMap请求您自己的API密钥,为 ,并在...在URI上使用ContentObserver

    Android开发资料合集-World版!

    9.72、定义CONTENTOBSERVER,监听某个数据表 302 9.73、打开照相机 303 9.74、从GALLERY选取图片 303 9.75、打开录音机 303 9.76、语音朗读 303 9.77、手机获取视频流显示在电脑上 305 9.78、蓝牙的使用 313 9.79、...

Global site tag (gtag.js) - Google Analytics