When I click on the ImageButton for the first time to perform the function of making the call, it does not do anything, I have to go to settings / applications / ... and manually activate the call permission. How could I ask permission for the first time I do the action?
I have the permission given in Manisfest:
<uses-permission android:name="android.permission.CALL_PHONE" />
MainActivity.java
package prueba.otrointento;
import android.Manifest;
import android.app.ActionBar;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.content.Intent;
import android.widget.ImageButton;
import static prueba.otrointento.R.drawable.icon_des1;
public class MainActivity extends AppCompatActivity {
ImageButton btn1;
ImageButton btn2;
ImageButton btn3;
ImageButton btn4;
ImageButton btn5;
ImageButton icon_des1;
ImageButton icon_des2;
ImageButton icon_des3;
ImageButton icon_des4;
ImageButton icon_des5;
ImageButton icon_des6;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
getSupportActionBar().setCustomView(R.layout.text_des);
btn1 = (ImageButton) findViewById(R.id.btn1);
btn2 = (ImageButton) findViewById(R.id.btn2);
btn3 = (ImageButton) findViewById(R.id.btn3);
btn4 = (ImageButton) findViewById(R.id.btn4);
btn5 = (ImageButton) findViewById(R.id.btn5);
icon_des1 = (ImageButton) findViewById(R.id.icon_des1);
icon_des2 = (ImageButton) findViewById(R.id.icon_des2);
icon_des3 = (ImageButton) findViewById(R.id.icon_des3);
icon_des4 = (ImageButton) findViewById(R.id.icon_des4);
icon_des5 = (ImageButton) findViewById(R.id.icon_des5);
icon_des6 = (ImageButton) findViewById(R.id.icon_des6);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent boton1 = new Intent(MainActivity.this, MainActivity.class);
startActivity(boton1);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent boton2 = new Intent(MainActivity.this, Main2Activity.class);
startActivity(boton2);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}
});
btn3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent boton3 = new Intent(MainActivity.this, Main3Activity.class);
startActivity(boton3);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}
});
btn4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent boton4 = new Intent(MainActivity.this, Main4Activity.class);
startActivity(boton4);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}
});
btn5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent boton5 = new Intent(MainActivity.this, Main5Activity.class);
startActivity(boton5);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}
});
icon_des1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri uriUrl = Uri.parse("www.google.es");
Intent intent = new Intent(Intent.ACTION_VIEW, uriUrl);
startActivity(intent);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}
});
icon_des2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri uriUrl = Uri.parse("www.google.es");
Intent intent = new Intent(Intent.ACTION_VIEW, uriUrl);
startActivity(intent);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}
});
icon_des3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri uriUrl = Uri.parse("www.google.es");
Intent intent = new Intent(Intent.ACTION_VIEW, uriUrl);
startActivity(intent);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}
});
icon_des4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent icon_des4 = new Intent(MainActivity.this, Main6Activity_gmail.class);
startActivity(icon_des4);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}
});
icon_des5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(Intent.ACTION_CALL, Uri.parse("tel:0000000"));
if(ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE)!=
PackageManager.PERMISSION_GRANTED)
return;
startActivity(i);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}
});
icon_des6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent icon_des6 = new Intent(MainActivity.this, Main6Activity_gmail.class);
startActivity(icon_des6);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}
});
}
}
I have been looking at the page for other questions on this topic, but I have not managed to get permission from you.
Thank you!
EDIT:
mainactivity.java - @Naos
public class MainActivity extends AppCompatActivity {
ImageButton btn1;
ImageButton btn2;
ImageButton btn3;
ImageButton btn4;
ImageButton btn5;
ImageButton icon_des1;
ImageButton icon_des2;
ImageButton icon_des3;
ImageButton icon_des4;
ImageButton icon_des5;
ImageButton icon_des6;
final int MY_PERMISSIONS_REQUEST_CALL_PHONE = 10;
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
switch (requestCode) {
case MY_PERMISSIONS_REQUEST_CALL_PHONE : {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// PERMISO CONCEDIDO, procede a realizar lo que tienes que hacer
Intent i = new Intent(Intent.ACTION_CALL, Uri.parse("tel:112"));
} else {
// PERMISO DENEGADO
}
return;
}
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
getSupportActionBar().setCustomView(R.layout.text_des);
btn1 = (ImageButton) findViewById(R.id.btn1);
btn2 = (ImageButton) findViewById(R.id.btn2);
btn3 = (ImageButton) findViewById(R.id.btn3);
btn4 = (ImageButton) findViewById(R.id.btn4);
btn5 = (ImageButton) findViewById(R.id.btn5);
icon_des1 = (ImageButton) findViewById(R.id.icon_des1);
icon_des2 = (ImageButton) findViewById(R.id.icon_des2);
icon_des3 = (ImageButton) findViewById(R.id.icon_des3);
icon_des4 = (ImageButton) findViewById(R.id.icon_des4);
icon_des5 = (ImageButton) findViewById(R.id.icon_des5);
icon_des6 = (ImageButton) findViewById(R.id.icon_des6);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent boton1 = new Intent(MainActivity.this, MainActivity.class);
startActivity(boton1);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent boton2 = new Intent(MainActivity.this, Main2Activity.class);
startActivity(boton2);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}
});
btn3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent boton3 = new Intent(MainActivity.this, Main3Activity.class);
startActivity(boton3);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}
});
btn4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent boton4 = new Intent(MainActivity.this, Main4Activity.class);
startActivity(boton4);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}
});
btn5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent boton5 = new Intent(MainActivity.this, Main5Activity.class);
startActivity(boton5);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}
});
icon_des1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri uriUrl = Uri.parse("www.google.es");
Intent intent = new Intent(Intent.ACTION_VIEW, uriUrl);
startActivity(intent);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}
});
icon_des2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri uriUrl = Uri.parse("www.google.es");
Intent intent = new Intent(Intent.ACTION_VIEW, uriUrl);
startActivity(intent);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}
});
icon_des3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri uriUrl = Uri.parse("www.google.es");
Intent intent = new Intent(Intent.ACTION_VIEW, uriUrl);
startActivity(intent);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}
});
icon_des4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent icon_des4 = new Intent(MainActivity.this, Main6Activity_gmail.class);
startActivity(icon_des4);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}
});
icon_des5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED){
// Aquí ya está concedido, procede a realizar lo que tienes que hacer
Intent i = new Intent(Intent.ACTION_CALL, Uri.parse("tel:112"));
}else{
// Aquí lanzamos un dialog para que el usuario confirme si permite o no el realizar llamadas
ActivityCompat.requestPermissions(MainActivity.this, new String[]{ Manifest.permission.CALL_PHONE}, MY_PERMISSIONS_REQUEST_CALL_PHONE);
}
}
});
icon_des6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent icon_des6 = new Intent(MainActivity.this, Main6Activity_gmail.class);
startActivity(icon_des6);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}
});
}
}