Olá, Estou utilizando um Android com a API 24 e ao realizar a chamada para tirar a foto recebo FileUriExposedException.
https://developer.android.com/reference/android/os/FileUriExposedException.html
A documentação informa que ao invés de utilizar o putExtra com o file eu deveria enviar com em um formato diferente (contents) que desta forma dou permissão temporaria ao App de Foto para acessar o caminho da minha App para gravar aquele arquivo.
Como faço este putExtra que a documentação informa?
Encontrei no Link: https://developer.android.com/training/camera/photobasics.html#TaskPath o Exemplo:
Uri photoURI = FileProvider.getUriForFile(this,
"com.example.android.fileprovider",
photoFile);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
Mas ele informa que é necessário fazer alguns ajustes no Manifesto:
<application>
...
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.example.android.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths"></meta-data>
</provider>
...
</application>
Onde na tag meta-data ele define um resource e exemplifica o mesmo:
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="my_images" path="Android/data/com.example.package.name/files/Pictures" />
</paths>
Ainda não realizei os testes, mas esta é a forma correta? ou existe outra maneira para resolver este exception?