广播接收者和自定义广播
广播接收者
监听广播的步骤
定义一个类,这个类继承BroadCastReceiver,实现它的onReceive()方法
SdcardReceive extends BroadcastReceiver
去清单文件中注册这个类,添加意图过滤器
//广播也和activity一样需要注册 <receiver android:name="com.liuwen.receiver.SdcardReceive" > <intent-filter> //action:这个是你要监听的广播,这个广播可以是系统发出来的,也可以是别的 //应用程序发的,也可以是你自己在本程序中自定义的 //data 发送广播的那个程序有没有定义,如果定义了我们就要添加相对应的data,不然这个 //广播就会监听失败 <!-- sd卡被卸载的广播,这个广播要加data不然监听不到 --> <action android:name="android.intent.action.MEDIA_UNMOUNTED" > </action> <data android:scheme="file"></data> </intent-filter> </receiver>
在onReceive()方法中写你的逻辑代码
//当成功接收到了广播就会触发这个方法 public void onReceive(Context context, Intent intent) { //里面写你接收到广播之后要运行的逻辑代码 //getAction()获取动作 //在4.0以上的版本监听这个开机广播要添加权限,不然监听不成功 //Intent.ACTION_BOOT_COMPLETED //当我们监听了多个广播的时候我们可以用这种判断来区别详细的广播,然后写对应的 //逻辑代码 if(intent.getAction().equals(Intent.ACTION_MEDIA_UNMOUNTED)){ Toast.makeText(context, "外置存储开被卸载了,部分应用不可用", 0).show(); } }
多个广播接收者示例
开机启动
高版本要记得加权限 <action android:name="android.intent.action.BOOT_COMPLETED"/>
向外呼叫电话
权限: <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
监听软件的安装和卸载
<!-- 3.监听指定的action动作,并且要记得带上scheme --> <intent-filter> <action android:name="android.inten