Android: Cómo obtener un contenido: // URI para un archivo en el directorio PÚBLICO de almacenamiento externo

He seguidoeste tutorial de Google para comenzar un intento de capturar una imagen connew Intent(MediaStore.ACTION_IMAGE_CAPTURE). El tutorial recomienda usar el directorio público congetExternalStoragePublicDirectory lo que funcionaría muy bien para mi aplicación. Pero luego su ejemplo usagetExternalFilesDir. Luego, para pasar el URI del archivo a la intención conMediaStore.EXTRA_OUTPUT I tener que obtener un URI de contenido porque me gustaría apuntar a Android N. Antes de apuntar a N. Simplemente pasaría un archivo: // URI y todos menos Google estaban contentos. Ahora en N empecé a obtener elFileUriExposedException eso parece serno muy favorable.

Entonces, dado que tengo un archivo como este ...

private File createImageFile() throws IOException {
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
    File storageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "MyAppFolder");
    if (!storageDir.exists() && !storageDir.mkdir())
        Log.w(TAG, "Couldn't create photo folder: " + storageDir.getAbsolutePath());
    File image = new File(storageDir, timeStamp + ".jpg");
    mCurrentPhotoPath = image.getAbsolutePath();
    return image;
}

... ¿puedo usar un proveedor integrado para el directorio de imágenes públicas para obtener un URI de contenido? ¿Si es así, cómo?

He intentado algo como

takePictureIntent.putExtra(
    MediaStore.EXTRA_OUTPUT, 
    FileProvider.getUriForFile(this, MediaStore.AUTHORITY, createImageFile()));

pero solo arroja

IllegalArgumentException: faltan los metadatos android.support.FILE_PROVIDER_PATHS

¿Es correcta esa autoridad? Si debo usar mi propio proveedor para compartir el archivo público, ¿qué ruta puedo especificar en mis metadatos FILE_PROVIDER_PATHS? Toda laopciones que puedo encontrar son para directorios privados.

Respuestas a la pregunta(2)

Su respuesta a la pregunta