Al iniciar mi aplicación Android, necesito crear un directorio en la tarjeta sd, para un pequeño número de usuarios esto falla y no puedo entender el razón para ello ...mkdirs devuelve falso para el directorio en la tarjeta SD mientras el directorio principal es escribible
(que he encontrado problemas similares causados por el permiso WRITE_EXTERNAL_STORAGE faltante, que está ahí y funciona para casi todos los usuarios, así que no creo que esto es motivo)
tengo simplifiqué la situación anterior para que sea más fácil de explicar, si se produce un error en la creación de un directorio, ejecuto un caso de prueba donde trato de crear un directorio .test en la tarjeta SD:
new File(Environment.getExternalStorageDirectory(), ".test").mkdir() -> false
new File(Environment.getExternalStorageDirectory(), ".test").mkdirs() -> false
propiedades de los archivos de los directorios relevantes:
/sdcard/.test (existe = false CanWrite = false CanRead = false CanExecute = err isDirectory = false isFile = false)
/sdcard (existe = true CanWrite = true CanRead = true CanExecute = err isDirectory = true isFile = false)
/(existe = true CanWrite = false CanRead = true CanExecute = err isDirectory = true isFile = false)
getExternalStorageState = montado
(retornos CanExecute yerran porque la prueba se ejecuta en SDK < 9)
sugerencias e ideas son bienvenidas ...
¿Podría mostrar el código donde intenta crear el directorio? Por ejemplo, si tiene una '/ sdcard' cableada, ese podría ser su problema allí mismo. – CommonsWare
@CommonsWare: estoy usando Environment.getExternalStorageDirectory() y pensando en cambiar a Context.getExternalFilesDir (null) una vez que resuelvo este problema ... Editaré mi publicación original con el código ... Thansk para la respuesta rápida ! – Danny
Tenga en cuenta que 'getExternalFilesDir()' solo existe para Android 2.2 y está roto en esa versión. Me quedaré con su estrategia actual en el futuro previsible. – CommonsWare