versiones pie oreo developer caracteristicas android

android - pie - getExternalFilesDir() devuelve null(no es un problema de permisos)



android versiones (3)

He estado trabajando en una aplicación durante algún tiempo y la he probado en muchos dispositivos. De repente, dejó de funcionar en el Motorola Xoom Family Edition (Honeycomb 3.1). Cada vez que intentaría ejecutar la aplicación, fallaría en la llamada a getExternalFilesDir (), ya que esa llamada devolvería un valor nulo en lugar de un archivo.

Según mi investigación, a cualquiera con un problema similar le falta el WRITE_EXTERNAL_STORAGE, nunca obtuvo una respuesta, o estaba hablando de un error en Froyo. Nada de eso se aplica aquí, y una vez más, funciona bien en otros dispositivos, tengo el permiso WRITE_EXTERNAL_STORAGE, e incluso funcionó en este dispositivo hasta hace unos minutos.

¿Alguna idea de lo que podría causar este problema, o cómo prevenirlo programáticamente?


El mismo problema en Samsung SCH-1405 (VZW Galaxy II) ejecutando 2.3.6 (kernel 2.6.35.7-FF1). No hay problemas para obtener el directorio de archivos externos durante meses y luego bam, comienza a devolver NULL. El teléfono reiniciado y el problema se fueron. No es un buen presagio.

Una posible causa podría ser que haya estado cambiando este teléfono dentro y fuera del modo de depuración USB para obtener capturas de pantalla y haya estado arrancando el cable USB del teléfono sin desmontar primero los sistemas de archivos del teléfono desde mi Mac. Este es un nuevo comportamiento de mi parte.

Cuando veo el resultado de retorno de android.os.Environment.getExternalStorageState () con el problema presente, veo "compartido", pero cuando se reinicia el teléfono, el resultado es "montado". Por lo tanto, parece que cuando el teléfono piensa que el almacenamiento externo está "compartido", entonces no está permitiendo que una aplicación acceda al almacenamiento externo. Esto es especulación.


El problema desapareció después de reiniciar la tableta. Puede que solo sea una peculiaridad extraña que es extremadamente rara y se soluciona con un simple reinicio; Espero que no, ya que me gustaría tener una forma sólida de evitar esto en lugar de simplemente esperar que cualquier usuario que se encuentre con el error esté entendiendo.


Esto sucederá si el dispositivo está en modo "Almacenamiento masivo". Si lo cambia a MTP o "Sólo cargo", según el dispositivo, debería funcionar. Esto se debe a que el almacenamiento de datos externos no está técnicamente montado en el dispositivo sino en su computadora.