Estoy tratando de registrar un receptor para la eliminación de la tarjeta sd, pero mi receptor no recibe una llamada al quitar la tarjeta sd pegando mi código aquí. Estoy registrando el receptor en oncreate() y anulando el registro en la función ondestroy. Por favor, avíseme si estoy cometiendo algún error.No obtengo las intenciones relacionadas con la tarjeta SD en mi receptor de difusión
void registerSDCardStateChangeListener() {
final String MEDIA_REMOVED = "android.intent.action.MEDIA_REMOVED";
final String MEDIA_UNMOUNTED = "android.intent.action.MEDIA_UNMOUNTED";
final String MEDIA_BAD_REMOVAL = "android.intent.action.MEDIA_BAD_REMOVAL";
// final String MEDIA_EJECT = "android.intent.action.MEDIA_EJECT";
final String MEDIA_EJECT = "android.intent.action.MEDIA_SCANNER_FINISHED";
mSDCardStateChangeListener = new BroadcastReceiver() {
@
Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equalsIgnoreCase(MEDIA_REMOVED) || action.equalsIgnoreCase(MEDIA_UNMOUNTED) || action.equalsIgnoreCase(MEDIA_BAD_REMOVAL) || action.equalsIgnoreCase(MEDIA_EJECT)) {
if (mMediaPlayer != null) {
stopPlayBack();
}
}
}
};
IntentFilter filter = new IntentFilter();
filter.addAction(MEDIA_REMOVED);
filter.addAction(MEDIA_UNMOUNTED);
filter.addAction(MEDIA_BAD_REMOVAL);
filter.addAction(MEDIA_EJECT);
registerReceiver(mSDCardStateChangeListener, filter);
}
Por favor, hágamelo saber si algo está mal en mi código.
Muchas gracias, funcionó – Suman
@Justin Breitfeller +1 por su respuesta. –