Day13发送广播LocalBroadcastManager

1.本地广播

    //TODO:本地广播
        localBroadcastManager = LocalBroadcastManager.getInstance(this);
        //TODO:广播接受者
        MyReceiver myReceiver = new MyReceiver();
        //TODO:意图过滤器
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction("com.dongzhi");
        //TODO:广播接收器
		点击按钮发送广播
        localBroadcastManager.registerReceiver(myReceiver, intentFilter);
              //TODO:本地发送
        Intent intent = new Intent();
        intent.setAction("com.dongzhi");
        //TODO:发送广播
        localBroadcastManager.sendBroadcast(intent);

2.观察者发送短信自动输入

   private Handler handler = new Handler(){
        @Override
        public void handleMessage(@NonNull Message msg) {
            super.handleMessage(msg);
            String  s = (String) msg.obj;
            //TODO:显示到输入框中
            msg1.setText(s);
        }
    };
        //TODO:获取读取权限
        if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.M){
            requestPermissions(new String[]{Manifest.permission.READ_SMS},100);
        }
        //TODO:注册一个内容解析者
        ContentResolver contentResolver = getContentResolver();
        //TODO:注册一个内容观察者
        MyObServer myObServer = new MyObServer(handler, this);
        contentResolver.registerContentObserver(Telephony.Sms.CONTENT_URI,true,myObServer);

ObService 页面

 public MyObServer(Handler handler, Context context) {
        super(handler);
        this.context = context;
        this.handler = handler;
    }
     public void onChange(boolean selfChange) {
        super.onChange(selfChange);
        Log.i(TAG, "onChange: ");
        //TODO:注册一个内容解析者
        ContentResolver contentResolver = context.getContentResolver();
        //TODO:查询短信
        Cursor query = contentResolver.query(Telephony.Sms.CONTENT_URI, null, null, null, null);
        if (query!=null){
            //TODO:查询最近的一条
            query.moveToFirst();
            //TODO:查询短信内容的字段
            String string = query.getString(query.getColumnIndex(Telephony.Sms.BODY));
            Log.i(TAG, "onChange: "+string);
            //TODO:获取短信
            Message obtain = Message.obtain();
            obtain.obj = string;
            //TODO:发送获取到的短信
            handler.sendMessage(obtain);

            query.close();
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值