No exercício pede para colocar um pedido de permissão, eu pensei em criar um método que já peça todas as permissões necessárias quando o app e aberto mas, quando tirei o checkSelfPermission da intent que realiza a ligação o AndroidStudio reclama que esta sem.
ListaDeAlunosActivity
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lista_alunos);
// codigo ...
checaPermicoes();
}
private void checaPermicoes(){
if (ActivityCompat.checkSelfPermission(ListaAlunosActivity.this, Manifest.permission.RECEIVE_SMS)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(ListaAlunosActivity.this,
new String[]{Manifest.permission.RECEIVE_SMS}, CODIGO_SMS);
}
if (ActivityCompat.checkSelfPermission(ListaAlunosActivity.this, Manifest.permission.CALL_PHONE)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(ListaAlunosActivity.this,
new String[]{Manifest.permission.CALL_PHONE}, CODIGO_CALL);
}
}
public void onCreateContextMenu(...){
MenuItem itemLigar = menu.add("Ligar");
itemLigar.setOnMenuItemClickListener(item -> {
Intent intentLigar = new Intent(Intent.ACTION_CALL);
intentLigar.setData(Uri.parse("tel:" + aluno.getTelefone()));
startActivity(intentLigar);
return false;
});
// ....