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
- Disposición de Android S3 vs diseño Galaxy Nexus
- Unity UI Masking no funciona en Galaxy Note y Kindle Fire
- Cómo ver la consola Javascript de Stock Browser en Android Galaxy S4
- Sensor de proximidad en Galaxy S4 (Air Gestures)
- Cómo obtener controlador USB OEM para Samsung Galaxy SIII con el número de modelo GT-I9300
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!
- Stream URL RTSP utilizando VideoView en android
- DDMS (monitor de depuración de Android) no lista procesos en Galaxy S II
- Excepción "OutOfMemory" sólo en Samsung Galaxy S3
- PhoneGap y Galaxy s4 procesan problema
- Cómo agregar acciones al menú Overflow en Galaxy S3?
- Galaxy S3: tomar fotos en modo retrato destruye actividad
- Cómo obtener el ancho de ventana correcto en el cambio de orientación para dispositivos Android, tabletas y móviles
- USB Accessory API en el Samsung Galaxy S2 Android
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 pudo obtener el cliente de la fábrica de conexión – luchando con Google Maps
- ¿Cuál es la diferencia entre la clase URI y Uri?