Fiz a seguinte alteração na reescrita do método onMenuItemClick para quando for autorizado a permissão de ligação atribuir uma flag que posteriormente eu verifico se esta flag está setada como "true" é startada a activity para ligar:
itemLigar.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
boolean permitido = false;
if (ActivityCompat.checkSelfPermission(ListaAlunosActivity.this, Manifest.permission.CALL_PHONE)
!= PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(ListaAlunosActivity.this,
new String[]{Manifest.permission.CALL_PHONE}, 123);
permitido = (ActivityCompat.checkSelfPermission(ListaAlunosActivity.this, Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED);
} else {
permitido = true;
}
if (permitido){
Intent intentLigar = new Intent(Intent.ACTION_CALL);
intentLigar.setData(Uri.parse("tel:" + aluno.getTelefone()));
startActivity(intentLigar);
}
return false;
}
});
O código funciona apenas em modo DEBUG. Alguém saberia me dizer pq?