2
respostas

Android II - Integração com apps e recursos do device - Usando a câmera

Olá, já reparei que o tópico foi levantando em outros posts do fórum, mas as respostas foram evasivas, vindas do instrutor. Poderiam mostrar como resolver esse problema

04-25 11:26:46.797 14510-14510/alura.com.br.agenda E/AndroidRuntime: FATAL EXCEPTION: main Process: alura.com.br.agenda, PID: 14510 android.os.FileUriExposedException: file:///storage/emulated/0/Android/data/alura.com.br.agenda/files/foto.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:845) at android.content.Intent.prepareToLeaveProcess(Intent.java:8941) at android.content.Intent.prepareToLeaveProcess(Intent.java:8926) at android.app.Instrumentation.execStartActivity(Instrumentation.java:1517) at android.app.Activity.startActivityForResult(Activity.java:4225) at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:50) at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:79) at android.app.Activity.startActivityForResult(Activity.java:4183) at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:859) at android.app.Activity.startActivity(Activity.java:4522) at android.app.Activity.startActivity(Activity.java:4490) at br.com.alura.formulario.FormularioActivity$1.onClick(FormularioActivity.java:39) at android.view.View.performClick(View.java:5637) at android.view.View$PerformClick.run(View.java:22429) 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:6119) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

Baseado no código do curso e não em informações genéricas para facilitar o andamento do treinamento?

Grato.

2 respostas

Olá João,

Esse problema acontece por causa de algumas mudanças que ocorreram na versão 7 do Android. Nessa versão não podemos mais expor uma URI de um arquivo para outras apps no dispositivo. Isso é exatamente o que estamos tentando fazer na app do curso: fornecer uma URI do caminho da foto para a app da câmera do celular.

Para corrigir esse comportamento precisamos criar um ContentProvider para permitir o acesso do caminho da foto pela app da câmera.

Quando entendemos o problema atualizamos a resposta do exercício da câmera com todas as alterações necessárias para corrigir o problema no app do curso. Você pode encontrar essas informações detalhadas clicando no botão Ver opinião do instrutor no link abaixo:

https://cursos.alura.com.br/course/android-studio-ii-integracoes-e-recursos/task/23374

Jeferson, obrigado.