No puedo obtener la ruta real de la tarjeta SD extraíble. ¿Hay alguna manera de conseguir?

En algún dispositivo, es la trayectoria de retorno de la tarjeta SD extraíble, pero en algunos devuelve null.

Básicamente, quiero almacenar el archivo de acuerdo al usuario ya sea almacenamiento interno de dispositivo o externo (almacenamiento extraíble (tarjeta micro SD)). Esto necesito ser hecha de jelly bean to 6.0

public static String getExternalStroagePath(Context context) { // storage types final String FLAG = "mnt"; final String SECONDARY_STORAGE = System.getenv("SECONDARY_STORAGE"); final String EXTERNAL_STORAGE_DOCOMO = System.getenv("EXTERNAL_STORAGE_DOCOMO"); final String EXTERNAL_SDCARD_STORAGE = System.getenv("EXTERNAL_SDCARD_STORAGE"); final String EXTERNAL_SD_STORAGE = System.getenv("EXTERNAL_SD_STORAGE"); final String EXTERNAL_STORAGE = System.getenv("EXTERNAL_STORAGE"); Map<Integer, String> listEnvironmentVariableStoreSDCardRootDirectory = new HashMap<Integer, String>(); // add all storage to map listEnvironmentVariableStoreSDCardRootDirectory.put(0,SECONDARY_STORAGE); listEnvironmentVariableStoreSDCardRootDirectory.put(1,EXTERNAL_STORAGE_DOCOMO); listEnvironmentVariableStoreSDCardRootDirectory.put(2,EXTERNAL_SDCARD_STORAGE); listEnvironmentVariableStoreSDCardRootDirectory.put(3,EXTERNAL_SD_STORAGE); listEnvironmentVariableStoreSDCardRootDirectory.put(4, XTERNAL_STORAGE); File externalStorageList[] = null; String directory = null; //check version if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.KITKAT) { externalStorageList = context.getExternalFilesDirs(null); } int size = listEnvironmentVariableStoreSDCardRootDirectory.size(); for (int i = 0; i < size; i++) { if (externalStorageList != null && externalStorageList.length > 1 && externalStorageList[1] != null) directory = externalStorageList[1].getAbsolutePath(); else directory = listEnvironmentVariableStoreSDCardRootDirectory.get(i); directory = canCreateFile(directory); if (directory != null && directory.length() != 0) { if (i == size - 1) { if (directory.contains(FLAG)) { return directory; } else { return null; } } return directory; } } return null; } 

  • Visualización de imágenes de una carpeta específica de la tarjeta SD mediante una vista de cuadrícula
  • Cómo cargar JS y CSS desde SDCARD con el método loadDataWithBaseURL ()
  • Cómo guardar una imagen en una galería de almacenamiento externa en android
  • ¿Cómo eliminar un archivo de la tarjeta SD?
  • Almacenamiento externo de Android entre las marcas para móviles
  • Restaurar archivo DB de SQLite
  • Android: guarda imágenes en una carpeta específica
  • ¿Tengo que declarar WRITE_EXTERNAL_STORAGE y READ_EXTERNAL_STORAGE?
  • Escribir en la tarjeta SD interna en Android
  • Compruebe si la tarjeta SD está presente, boolean siempre es cierto
  • ¿Cómo saber si la sdcard está montada en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.