2012-01-09 18 views

Respuesta

3

A continuación se muestra cómo compruebo si la tarjeta de almacenamiento está montada/desmontada. Puede cambiarlo para verificar quitado/inservible. Para ello, registre un BroadcastReceiver para obtener los "eventos de montaje" y luego compruebe en qué estado se encuentra la tarjeta de almacenamiento. Si no está montado y no está mientras está comprobando (el estado durante el cual monta la tarjeta de nuevo) se desmonta o la tarjeta ha sido eliminada

public class MemCardReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ 
      onMemcardMounted(); 
     } 
     else if (!Environment.getExternalStorageState().equals(Environment.MEDIA_CHECKING)){ 
      onMemorycardUnMounted(); 
     } 
    } 

    private void onMemorycardUnMounted() {} 

    private void onMemcardMounted() {} 
} 

Y en manifest

<receiver android:enabled="true" android:exported="true" android:name="the.name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MEDIA_MOUNTED" /> 
      <action android:name="android.intent.action.MEDIA_UNMOUNTED" /> 
      <data android:scheme="file" /> 
     </intent-filter> 
    </receiver> 

Hay varios estados diferentes checkout this si hay algún otro afirmó similares. eliminado

0

Creo que android.Intent.action.ACTION_MEDIA_EJECT se transmite cuando el usuario toma el almacenamiento USB en uso y ACTION_MEDIA_MOUNTED cuando está apagado.

Cuestiones relacionadas