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

  • 相关阅读:
    Spring Boot 配置文件和命令行配置
    Spring Boot RestApi 测试教程 Mock 的使用
    Spring Boot 集成 Swagger2 教程
    Spring Boot Web 开发@Controller @RestController 使用教程
    SpringBoot RESTful API 架构风格实践
    Spring Boot 使用 Aop 实现日志全局拦截
    Spring Boot 全局异常处理
    Spring Boot Thymeleaf 模板引擎的使用
    Spring Boot Log 日志使用教程
    IDEA 下的 github 创建提交与修改
  • 原文地址:https://www.cnblogs.com/yydcdut/p/3791258.html
Copyright © 2011-2022 走看看