E aí, blz? Fui emular a aplicação, direto em meu celular físico, e tudo funcionou certinho, menos quando cliquei para tirar a foto. Quando faço isso, a aplicação fecha e aparece a seguinte mensagem de erro;
Process: alunoapp.com.miau, PID: 16240 android.os.FileUriExposedException: file:///storage/emulated/0/Android/data/alunoapp.com.aluno/files/1549137072871.jpg exposed beyond app through ClipData.Item.getUri()
Até onde revisei o código, o que mando a seguir, está semelhante ao da aula, mas não funciona no dispositivo físico, mesmo funcionando no emulador virtual.
public static final int CODIGO_CAMERA = 567;
private AlunoHelper helper;
private String caminhoFoto;
////outros codigos
Button botaoFoto = (Button) findViewById(R.id.formulario_botao_foto);
botaoFoto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intentcamera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
caminhoFoto = getExternalFilesDir(null) + "/" + System.currentTimeMillis() + ".jpg";
File arquivoFoto = new File(caminhoFoto);
intentcamera.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(arquivoFoto));
startActivityForResult(intentcamera, CODIGO_CAMERA);
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
if (resultCode == Activity.RESULT_OK){
if (requestCode == CODIGO_CAMERA){
helper.carregaImagem(caminhoFoto);
}
}
}