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;
}
};
};
转载请注明原文地址: https://ju.6miu.com/read-1200200.html