первый раз размещение здесь, я надеюсь, что все правильно. Я пытаюсь обнаружить, когда SD-карта удалена с устройства, мой широковещательный приемник отлично работает на старом планшете ICS (я могу получить действия MEDIA_UNMOUNTED, BAD_REMOVAL и т. Д., Намерения), но в другом планшете с android 4,2 ничего не происходит при удалении карты SD, ни одно из следующих действий намерений не вещает:SD-карта намерение не работает
MEDIA_BAD_REMOVAL
MEDIA_EJECT
MEDIA_REMOVED
MEDIA_UNMOUNTED
Я только нашел 1 связанный с этим вопрос к этому здесь, но решение добавлял dataScheme «файл», который я уже пробовал. Вот мой код:
private BroadcastReceiver deviceCardsBroadcastReceiver;
private IntentFilter sdCardIntentFilter;
sdCardIntentFilter = new IntentFilter();
sdCardIntentFilter.addAction(MEDIA_REMOVED);
sdCardIntentFilter.addAction(MEDIA_UNMOUNTED);
sdCardIntentFilter.addAction(MEDIA_BAD_REMOVAL);
sdCardIntentFilter.addAction(MEDIA_EJECT);
sdCardIntentFilter.addDataScheme("file");
registerReceiver(deviceCardsBroadcastReceiver, sdCardIntentFilter);
deviceCardsBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
switch (intent.getAction()) {
case MEDIA_BAD_REMOVAL:
case MEDIA_EJECT:
case MEDIA_REMOVED:
case MEDIA_UNMOUNTED:
Log.i("SD CARD REMOVED");
break;
default:
break;
}
}
};
Как выглядит ваш манифест? –
Я не добавил ничего в манифест, так как я делал все программно и, похоже, работал на старом 4.0-планшете. Должен ли я что-то делать там? –
Да, вы должны зарегистрировать 'BroadcastReceiver' в манифесте. Я отвечу одну секунду. –