动态注册:
detectionSDkBroadcastReceiver = new DetectionSDkBroadcastReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_MEDIA_MOUNTED);
intentFilter.addAction(Intent.ACTION_MEDIA_EJECT);
intentFilter.addDataScheme("file");//检测sd卡的时候必须加上
this.registerReceiver(detectionSDkBroadcastReceiver,intentFilter);
这里的Action 并不用在xml中注册
静态注册,在androidmanifest.xml文件中设置
<receiver android:name = ".SdkBroadcastReceiver">
<intent-filter android:priority = "1000">
<action android:name = "android.intent.action.MEDIA_EJECT"></action>
<action android:name = "android.intent.action.MEDIA_MOUNTED"></action>
<data android:scheme = "file"></data>
</intent-filter>
</receiver>
代码:建立一个接受类继承BroadcastReceiver
覆盖onReceive方法
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals("android.intent.action.MEDIA_EJECT"))
}
else if(intent.getAction().equals("android.intent.action.MEDIA_MOUNTED")){
Toast.makeText(context,"MEDIA_MOUNTED", Toast.LENGTH_LONG).show();
}
在广播中跳转到一个activity
Intent newIntent = new Intent();
newIntent.setClass(context, SDkActivity.class);
newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//在广播中进行跳转到一个activity或者service是都必须加这一句
context.startActivity(newIntent);
转载于:https://blog.51cto.com/3458038/883513