Pesquisei aqui no fórum e não consegui de maneira alguma. Meu código é o abaixo:
Button botaoFoto = 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);
String caminhoFoto = getExternalFilesDir(null)+ "/foto.jpg";
File arquivoFoto = new File(caminhoFoto);
intentCamera.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(arquivoFoto));
startActivity(intentCamera);
}
});
Na ajuda da aula após o vídeo é passada a informação para fazer algumas alterações em Android 7 ou superior. Adicionei a tag PROVIDER no Manifest. Criei o provider_paths.xml e quando copiei o código apresentado por último:
class MainActivity extends AppCompatActivity {
private String caminhoFoto;
public void tiraFoto() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
caminhoFoto = getExternalFilesDir(null) + "/" + System.currentTimeMillis() + ".jpg";
File arquivoFoto = new File(caminhoFoto);
// essa parte muda no Android 7, estamos construindo uma URI
// para acessar a foto utilizando o FileProvider
intent.putExtra(MediaStore.EXTRA_OUTPUT,
FileProvider.getUriForFile(this,
BuildConfig.APPLICATION_ID + ".provider", arquivoFoto));
startActivityForResult(intent, 123);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 123 && resultCode == Activity.RESULT_OK) {
Bitmap bitmap = BitmapFactory.decodeFile(caminhoFoto);
Bitmap bitmapReduzido = bitmap.createScaledBitmap(bitmap, 150, 150, true);
campoFoto.setImageBitmap(bitmapReduzido);
campoFoto.setTag(caminhoFoto);
}
}
}
No final desse código há o erro: Error:(68, 17) error: cannot find symbol variable campoFoto