Android开发之BroadcastReceiver

BroadCastReceiver

广播接收者( BroadcastReceiver )用于接收广播 Intent ,广播 Intent 的发送是通过调用Context.sendBroadcast() 、 Context.sendOrderedBroadcast() 来实现的。通常一个广播 Intent 可以被订阅了此 Intent 的多个广播接收者所接收。
广播是一种广泛运用的在应用程序之间传输信息的机制 。而 BroadcastReceiver 是对发送出来的广播进行过滤接收并响应的一类组件;

  • BroadCastReceiver的机制
  • 在 Android 里面有各种各样的广播,比如电池的使用状态,电话的接收和短信的接收都会产生一个广播,应用程序开发者也可以监听这些广播并做出程序逻辑的处理。
    广播的步骤

    public class MyBroadcastReceiver extends BroadcastReceiver {
        // action 名称
        String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED" ;
        public void onReceive(Context context, Intent intent) {
     
           if (intent.getAction().equals( SMS_RECEIVED )) {
               // 相关处理 : 地域变换、电量不足、来电来信;
           }
        }
    }
    < receiver android:name = ".MyBroadcastReceiver" >
    < intent-filter android:priority = "1000" >      
    < action android:name = " android.provider.Telephony.SMS_RECEIVED" />
    
     当然了需要权限 :
    < uses-permission android:name = "android.permission.RECEIVE_SMS" />
    < uses-permission android:name = "android.permission.SEND_SMS" />
    
    private BroadcastReceiver myBroadcastReceiver = new BroadcastReceiver() {
           @Override
           public void onReceive(Context context, Intent intent) {
               // 相关处理,如收短信,监听电量变化信息
           }
    };
    IntentFilter intentFilter = new IntentFilter( "android.provider.Telephony.SMS_RECEIVED " );
    registerReceiver( mBatteryInfoReceiver , intentFilter);
    

    欢迎留言

    avatar
      Subscribe  
    Notify of