Como usar o suporte FileProvider para compartilhar conteúdo para outros aplicativos?

Eu estou procurando uma maneira de compartilhar corretamente (não abrir) um arquivo interno com aplicativo externo usando biblioteca de suporte AndroidFileProvider.

Seguindo o exemplo nos documentos,

<provider
    android:name="android.support.v4.content.FileProvider"
    android:authorities="com.example.android.supportv4.my_files"
    android:grantUriPermissions="true"
    android:exported="false">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/my_paths" />
</provider>

e usando ShareCompat para compartilhar um arquivo para outros aplicativos da seguinte forma:

ShareCompat.IntentBuilder.from(activity)
.setStream(uri) // uri from FileProvider
.setType("text/html")
.getIntent()
.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)

não funciona, pois o FLAG_GRANT_READ_URI_PERMISSION só concede permissão para o Uri especificado nodata da intenção, não o valor doEXTRA_STREAM extra (como foi definido porsetStream).

Eu tentei comprometer a segurança definindoandroid:exported paratrue para o provedor, masFileProvider internamente verifica se ele é exportado, quando assim, lança uma exceção.

questionAnswers(9)

yourAnswerToTheQuestion