première fois de publication ici J'espère que je le fais bien. J'essaie de détecter quand la carte SD est retirée d'un appareil, mon récepteur de diffusion fonctionne très bien sur une ancienne tablette ICS (je peux obtenir le MEDIA_UNMOUNTED, BAD_REMOVAL, etc, actions d'intention) mais dans une autre tablette avec android 4.2 rien ne se passe lorsque je retire la carte SD, aucune des actions suivantes intention sont diffusés:Intentions de suppression de la carte SD ne fonctionnant pas
MEDIA_BAD_REMOVAL
MEDIA_EJECT
MEDIA_REMOVED
MEDIA_UNMOUNTED
Je n'ai trouvé 1 question liée à cela ici, mais la solution a été d'ajouter le dataScheme « fichier » que j'ai déjà essayé. Voici mon code:
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;
}
}
};
À quoi ressemble votre manifeste? –
Je n'ai rien ajouté dans le manifeste puisque je faisais tout ce qui était programmatique, et il semble fonctionner dans la vieille tablette 4.0. Devrais-je faire quelque chose là aussi? –
Oui, vous devez enregistrer 'BroadcastReceiver' dans le manifeste. Je vais répondre une seconde. –