3

How to make a phone call in android when user Click on textView then automatically dail a number in textView ?

  TextView tv=(TextView) findViewById(R.id.tv_contact);
 String url = tv.getText().toString();
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(url));

 tv.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            startActivity(intent);
        }
    });'
Nikhil Lamba
  • 593
  • 1
  • 6
  • 17

1 Answers1

20

Add permission to call in AndroidManifest.xml file.

<uses-permission android:name="android.permission.CALL_PHONE"/>

First make your TextView clickable by adding below in your layout.xml

<TextView 
...
...
android:clickable="true">
</TextView>

Then in your Activity Class, inside OnClickListener of that particular TextView add below code

if (Build.VERSION.SDK_INT > 22) {

        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {

            ActivityCompat.requestPermissions(MoreProgramDetailActivity.this, new String[]{Manifest.permission.CALL_PHONE}, 101);

            return;
        }
        Intent callIntent = new Intent(Intent.ACTION_CALL);
        callIntent.setData(Uri.parse("tel:+" + tv.getText().toString().trim()));
        startActivity(callIntent);
 } else {

        Intent callIntent = new Intent(Intent.ACTION_CALL);
        callIntent.setData(Uri.parse("tel:+" + tv.getText().toString().trim()));
        startActivity(callIntent);
 }
pvrforpranavvr
  • 2,708
  • 2
  • 24
  • 34
Vinayak Bevinakatti
  • 40,205
  • 25
  • 108
  • 139