注册广播
動態注冊:
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
總結
- 上一篇: C语言预处理功能——关于字符串化和符号粘
- 下一篇: MyEclipse 深色主题