Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

FileUriExposedException utilizando a camera

Eae pessoal, estou com problema neste trecho de código:

 public void onClick(View v) {
                Intent intentCamera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                String caminhoFoto = getExternalFilesDir(null) + "/" + System.currentTimeMillis() + ".jpg";
                File arquivoFoto = new File(caminhoFoto);
                intentCamera.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(arquivoFoto));
                startActivity(intentCamera);
            }

Estou com o seguinte erro:

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.fontoura.jabel.agenda, PID: 2991
                  android.os.FileUriExposedException: file:///storage/emulated/0/Android/data/com.fontoura.jabel.agenda/files/1482254423315.jpg exposed beyond app through ClipData.Item.getUri()
                      at android.os.StrictMode.onFileUriExposed(StrictMode.java:1799)
                      at android.net.Uri.checkFileUriExposed(Uri.java:2346)
                      at android.content.ClipData.prepareToLeaveProcess(ClipData.java:832)
                      at android.content.Intent.prepareToLeaveProcess(Intent.java:8909)
                      at android.content.Intent.prepareToLeaveProcess(Intent.java:8894)
                      at android.app.Instrumentation.execStartActivity(Instrumentation.java:1517)
                      at android.app.Activity.startActivityForResult(Activity.java:4224)
                      at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:48)
                      at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:75)
                      at android.app.Activity.startActivityForResult(Activity.java:4183)
                      at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:856)
                      at android.app.Activity.startActivity(Activity.java:4507)
                      at android.app.Activity.startActivity(Activity.java:4475)
                      at com.fontoura.jabel.agenda.FormularioActivity$1.onClick(FormularioActivity.java:45)
                      at android.view.View.performClick(View.java:5610)
                      at android.view.View$PerformClick.run(View.java:22260)
                      at android.os.Handler.handleCallback(Handler.java:751)
                      at android.os.Handler.dispatchMessage(Handler.java:95)
                      at android.os.Looper.loop(Looper.java:154)
                      at android.app.ActivityThread.main(ActivityThread.java:6077)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

Como seria uma boa maneira de lidar com isso?

1 resposta
solução!

Olá Jabel, tudo bem ?

Este é um problema corriqueiro da versão 7 do android, que ainda não tem grande numero na quantidade de usuarios, para solucionar este problema você pode dar uma olhadinha na documentação que fala o passo a passo para corriguirmos isso :

https://developer.android.com/reference/android/support/v4/content/FileProvider.html

A partir da versão 7, foi definido que passar o caminho absoluto de arquivos não era uma boa solução, então invés de usarmos file:// usarmos content://

Abraços