1.注册广播
/**
* 注册Sd卡插拔广播
*/
private void registerBroadCast() {
SdcardActionBroadcastReceiver myActionBroadcastReceiver = new SdcardActionBroadcastReceiver(myhander);
IntentFilter mFilter = new IntentFilter();
mFilter.addAction(Intent.ACTION_MEDIA_EJECT);
mFilter.addAction(Intent.ACTION_MEDIA_MOUNTED);
mFilter.addDataScheme("file");
this.registerReceiver(myActionBroadcastReceiver, mFilter);
}
2.定义广播接受者
public class SdcardActionBroadcastReceiver extends BroadcastReceiver {
public Handler handler;
public SdcardActionBroadcastReceiver(Handler handler){
this.handler = handler;
}
@Override
public void onReceive(Context arg0, Intent intent) {
String action = intent.getAction();
if(action.equals(Intent.ACTION_MEDIA_EJECT)){
handler.sendEmptyMessage(1);
}else if(action.equals(Intent.ACTION_MEDIA_MOUNTED)){
handler.sendEmptyMessage(2);
}
}
}
3.Activity接收广播后响应操作
public Handler myhander = new Handler(){
public void handleMessage(Message msg) {
switch (msg.what) {
case 2:
Toast.makeText(GradeDataActivity.this, getResources().getString(R.string.grade_toast_insert_sdcare), Toast.LENGTH_SHORT).show();
break;
case 1:
Toast.makeText(GradeDataActivity.this, getResources().getString(R.string.grade_toast_remove_sdcare), Toast.LENGTH_SHORT).show();
break;
default:
break;
}
};
};