zoukankan      html  css  js  c++  java
  • Android -- 内容观察者

    一张图了解内容观察者:

    image

    背景                                                                                         

    通过发送一条短信,然后手机接收到,那么数据库必然改变,内容观察者这时候就起作用了。

    程序                                                                                         

    public class MainActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            ContentResolver resolver = getContentResolver();
            Uri uri = Uri.parse("content://sms/");
            //注册
            resolver.registerContentObserver(uri, true, new MyObserver(new Handler()));                   
        }
        
        class MyObserver extends ContentObserver
        {
    
            public MyObserver(Handler handler) {
                super(handler);            
            }
    
            //当内容观察者观察到数据库的内容发生了变化就会调用这个方法
            //观察到消息邮箱里有一条数据库内容变化的通知
            @Override
            public void onChange(boolean selfChange) {
                super.onChange(selfChange);
                Toast.makeText(MainActivity.this, "数据库的内容发生了变化", Toast.LENGTH_LONG).show();
                Uri uri = Uri.parse("content://sms/");
                ContentResolver resolver = getContentResolver();
                Cursor cursor = resolver.query(uri, new String[]{"address" ,"date", "type", "body"}, null, null, null);
                cursor.moveToFirst();
                String address = cursor.getString(cursor.getColumnIndex("address"));
                String body = cursor.getString(cursor.getColumnIndex("body"));
                System.out.println("address"+address+"+++++++body:"+body);
                cursor.close();
            }                  
        }    
    }

    效果                                                                                          

    image

    注意一下短信的读取的权限哈!!

    我是天王盖地虎的分割线                                                                

    源代码:http://pan.baidu.com/s/1dD1Qx01

    内容观察者.zip

    转载请注明出处:http://www.cnblogs.com/yydcdut

  • 相关阅读:
    【slenium专题】Webdriver同步设置
    【Selenium专题】WebDriver启动firefox浏览器
    【Selenium专题】WebDriver启动Chrome浏览器(二)
    【Selenium专题】WebDriver启动Chrome浏览器(一)
    Jenkins邮件设置
    Jenkins安装笔记
    for循环输出i为同一值的问题,SetTimeOut
    const、let、var的区别
    浏览器title失去焦点时改变title
    clone对象或数组
  • 原文地址:https://www.cnblogs.com/yydcdut/p/3791258.html
Copyright © 2011-2022 走看看