0

I have a call method. Everything is working fine. But I want to access it when the button is pressed, the application proceeds to request permission to call. How should I proceed to implement this function?

public class Menu_A extends AppCompatActivity implements OnClickListener {

private InterstitialAd mInterstitialAd;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_menu_);

    Button one = (Button) findViewById(R.id.btnActTwo);
    one.setOnClickListener(this);
    Button two = (Button) findViewById(R.id.btnAftor);
    two.setOnClickListener(this);


    mInterstitialAd = new InterstitialAd(this);
    mInterstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
    AdRequest adRequest = new AdRequest.Builder().build();
    mInterstitialAd.loadAd(adRequest);
    mInterstitialAd.setAdListener(new AdListener() {
        @Override
        public void onAdLoaded() {
            if(mInterstitialAd.isLoaded()) {
                mInterstitialAd.show();
            }}});}

@Override
public void onClick(View v) {

    switch (v.getId()) {

        case R.id.btnActTwo:
            Intent intent = new Intent(this, eda.class);
            startActivity(intent);
            break;

        case R.id.btnAftor:

            Intent callIntent = new Intent(Intent.ACTION_CALL);
            callIntent.setData(Uri.parse("tel:8********"));


            if (ActivityCompat.checkSelfPermission(Menu_A.this,
                    Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED)
            {return;}
            startActivity(callIntent);
            break;
    }}}
Minial
  • 321
  • 2
  • 17
Gavrilev Egor
  • 25
  • 1
  • 8

1 Answers1

2

Try this :

 case R.id.btnAftor:

            Intent callIntent = new Intent(Intent.ACTION_CALL);
            callIntent.setData(Uri.parse("tel:8********"));


            if (ActivityCompat.checkSelfPermission(Menu_A.this,
                    Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED)
            {
                   ActivityCompat.requestPermissions(Menu_A.this, new String[]{Manifest.permission.CALL_PHONE}, 1);

      }
            startActivity(callIntent);
            break;

And in Your Menu_A class check the permission

@Override
public void onRequestPermissionsResult(int requestCode,
                                       String permissions[], int[] grantResults) {
    switch (requestCode) {

        case 1: {

            if (grantResults.length > 0
                    && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                Toast.makeText(getApplicationContext(), "Permission granted", Toast.LENGTH_SHORT).show();
                call_action();
            } else {
                Toast.makeText(getApplicationContext(), "Permission denied", Toast.LENGTH_SHORT).show();
            }
            return;
        }

        // other 'case' lines to check for other
        // permissions this app might request
    }
 }
Wisdomrider
  • 170
  • 7