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.

  • ObjectAnimator.setDuration se ignora
  • Android - Obtener imágenes de la galería Samsung S4 / S5
  • Creación del emulador Galaxy S5
  • Android gridview se estrella en Galaxy 3
  • No se puede crear el directorio en el almacenamiento externo aunque los permisos aparentemente están configurados correctamente
  • ¿Es posible comprobar el estado de las aplicaciones "Contactos" y "Mensajería" mediante un servicio de fondo en Android?
  • Cómo agregar acciones al menú Overflow en Galaxy S3?
  • USB Accessory API en el Samsung Galaxy S2 Android
  • El menú de opciones se bloquea en la galaxia s4
  • Aplicación de Android Studio en ejecución en el Samsung Galaxy S3 se bloquea al subir el archivo
  • Accidente de aplicación de vídeo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.