getExternalFilesDir devuelve directorys inconsistentes

Tengo una acción que permite a los usuarios download imágenes y las guardo en el directory de datos de mi aplicación.

Creo el file temporal así:

@Throws(IOException::class) fun Context.createPrivateMediaFile(prefix: String, extension: String): File { val timeStamp = SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(Date()) val imageFileName = "${prefix}_${timeStamp}_" val storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES) return File.createTempFile(imageFileName, extension, storageDir) } 

y lo uso así:

 try { photoFile = createPrivateMediaFile(".png") } catch (e: IOException) { errorRef = e } finally { if (photoFile == null) { callback(null) } else { tempFilePath = photoFile.absolutePath Ld("Temp image path $tempFilePath") // File created; proceed with request val photoURI = FileProvider.getUriForFile(this, BuildConfig.APPLICATION_ID + ".provider", photoFile) photoFile.outputStream().use { resource.compress(Bitmap.CompressFormat.PNG, 100, it) } callback(photoURI) } } 

El propósito es crear un nuevo file en mi directory de datos, save el file y luego emitir el uri a través de una callback.

Este método funciona la mayor parte del time, pero recibí informes donde el uri no se puede resolver. En esos casos, el error impreso es:

Failed to find configunetworking root that contains /storage/emulated/0/Android/data/com.pitchedapps.frost/files/Fotos/Frost_20170819_111929_1351301627.png

Mi proveedor de files contiene la siguiente ruta:

 <external-path name="Frost_images" path="Android/data/com.pitchedapps.frost/files/Pictures" /> 

así que es extraño para mí de dónde viene la carpeta de Fotos . Este error también se me ocurrió una vez, por lo que no debería ser un problema de configuration regional.

Entonces, ¿por qué getExternalFilesDir parece devolver diferentes routes? ¿Hay alguna manera de mantener un directory de datos base que se mantenga constante?

Otro ejemplo más es el siguiente error de ruta:

Failed to find configunetworking root that contains /data/data/com.pitchedapps.frost/cache/Frost_20170819_115054_2013474631.png .

Adjunto a continuación están mis

código fuente de actividad completa

y mi

medios utils