Ruta de acceso de getExternalStoragePublicDirectory en Samsung Galaxy Note

En mi aplicación, estoy creando archivos que están almacenados en el directorio de descargas de dispositivos. Todos mis usuarios están contentos con este mecanismo … excepto los que usan un Samsung Galaxy Note.

Es un poco difícil de depurar sin poseer tal dispositivo. Dentro de mi código, estoy usando

File newFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "file01"); if (newFile.exists()) { // show error } else { if (!newFile.mkdirs()) { // show error } } 

Para encontrar la ruta del directorio de destino. En el Galaxy Note, la ruta devuelta es "/ storage / sdcard0 / Download". Sin embargo, en el directorio del sistema de archivos local se escribe en minúsculas ("descarga") y los archivos creados por mi aplicación no existen obviamente en el directorio de archivos local. Al menos mis usuarios se quejan de esto. Supongo que el problema está relacionado con la diferencia minúscula / mayúscula en la ruta.

¿Alguien tiene una idea de por qué esto funciona en todos los dispositivos, excepto el Galaxy Note?

¡Gracias!

No hay garantía de que la ubicación devuelta por getExternalStoragePublicDirectory() realmente existe. La suya puede ser la primera aplicación que necesita uno de esos directorios. Por lo tanto, es su trabajo llamar a mkdirs() en esa ubicación, en todos los dispositivos, no solo en éste.

Más allá de eso, en cuanto a por qué alguien más (Samsung o otra aplicación de terceros) está creando un directorio de download minúsculas, la única manera de determinar "por qué" es averiguar quién creó ese directorio y luego ponerse en contacto con ese desarrollador. Esto es poco probable que sea una inversión que vale la pena en el tiempo.

Mientras estés llamando a mkdirs() para crear Download , cualquier otro directorio que pueda existir no es realmente tu preocupación. Si querías detectar posibles colisiones como esta, y avisar al usuario, podrías hacer eso, aunque no tengo ni idea de si eso valdría la pena.

  • "No se puede abrir el dispositivo de registro" dev / log / main "" error?
  • ¿Por qué el Samsung Galaxy S ignora la metaetiqueta escalable por el usuario?
  • Android: camera onPause / onResume issue
  • Samsung Galaxy / Holoeverywhere - El recurso no es un ColorStateList (color o ruta)
  • Android: Mi aplicación no admite Galxy S 4
  • Tostada no se muestra en el Samsung Galaxy S3 (última actualización 4.1.2)
  • Creación del emulador Galaxy S5
  • El diálogo "Make Bug Report" de Galaxy S4 nunca se inicializa
  • Android gridview se estrella en Galaxy 3
  • La actividad de Android se recrea
  • ¿Puede alguien confirmar este problema (número limitado de descriptores de archivo en algunos dispositivos Android)?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.