How to Make a phone calls programmatically in Android?

This article explains about creating an application using simple steps following below,

we are creating android application with calling functionality so when app user click on button then it will automatically calls on defined mobile phone number. So here is the complete step by step tutorial for Make a phone call directly from android app programmatically.

We are able to make a phone call in android via intent. You need to write only three lines of code to make a phone call

Intent Object – Action to make Phone Call

The below code is enough to make a call from the application

Intent callIntent = new Intent(Intent.ACTION_CALL); 

callIntent.setData(Uri.parse(“tel:”+8802177690));//change the number 

startActivity(callIntent); 

Also Read: Skills and Responsibilities of Android Developer

Simple Example of phone calls in Android

This example has an editText and Button in the UI, editText is set to inputType=”phone” that accepts only numbers and button click will open the dialer with the number entered.

To open the dialer we need to use Intent and the action to be performed here is ACTION_DIAL, and data to be provided is the phone number, which initiates call explicitly

activity_main.xml

<RelativeLayout

    xmlns:androclass=”http://schemas.android.com/apk/res/android”

    xmlns:tools=”http://schemas.android.com/tools” 

    android:layout_width=”match_parent” 

    android:layout_height=”match_parent” 

    tools:context=”.MainActivity” > 

 <Button 

        android:id=”@+id/button1″ 

        android:layout_width=”wrap_content” 

        android:layout_height=”wrap_content” 

        android:layout_alignParentTop=”true” 

        android:layout_centerHorizontal=”true” 

        android:layout_marginTop=”118dp” 

        android:text=”Call” /> 

  <EditText 

        android:id=”@+id/editText1″ 

        android:layout_width=”wrap_content”  

        android:layout_height=”wrap_content” 

        android:layout_alignParentTop=”true” 

        android:layout_centerHorizontal=”true” 

        android:layout_marginTop=”25dp” 

        android:ems=”10″ /> 

  </RelativeLayout> 

You need to write CALL_PHONE permission as given below:

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

Also Take a Look at : Develope your own Android App

File: Android-Manifest.xml

<?xml version=”1.0″ encoding=”utf-8″?>   

<manifest xmlns:androclass=”http://schemas.android.com/apk/res/android” 

    package=”com.example.phonecall” 

    android:versionCode=”1″ 

    android:versionName=”1.0″ > 

    <uses-sdk 

        android:minSdkVersion=”8″ 

        android:targetSdkVersion=”16″ /> 

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

    <application 

        android:allowBackup=”true” 

        android:icon=”@drawable/ic_launcher” 

        android:label=”@string/app_name” 

        android:theme=”@style/AppTheme” > 

        <activity 

            android:name=”com.example.phonecall.MainActivity” 

            android:label=”@string/app_name” > 

            <intent-filter> 

                <action android:name=”android.intent.action.MAIN” /> 

              <category android:name=”android.intent.category.LAUNCHER” /> 

            </intent-filter> 

        </activity> 

    </application> 

  </manifest> 

Know more : Android O Cool and New Features in the Latest Google Update

Activity class

 Let’s write the code to make the phone call via intent.

 File: MainActivity.java

package com.example.phonecall; 

import android.net.Uri; 

import android.os.Bundle; 

import android.app.Activity; 

import android.content.Intent; 

import android.view.Menu; 

import android.view.View; 

import android.view.View.OnClickListener; 

import android.widget.Button; 

import android.widget.EditText; 

 

public class MainActivity extends Activity { 

    EditText edittext1; 

    Button button1; 

   

@Override 

    protected void onCreate(Bundle savedInstanceState) { 

        super.onCreate(savedInstanceState); 

        setContentView(R.layout.activity_main); 

 

 //Getting the edittext and button instance 

        edittext1=(EditText)findViewById(R.id.editText1); 

        button1=(Button)findViewById(R.id.button1); 

 

        //Performing action on button click 

        button1.setOnClickListener(new OnClickListener(){ 

 

            @Override 

            public void onClick(View arg0) { 

                String number=edittext1.getText().toString(); 

                Intent callIntent = new Intent(Intent.ACTION_CALL); 

                callIntent.setData(Uri.parse(“tel:”+number)); 

                startActivity(callIntent); 

            } 

        }); 

    } 

   @Override 

    public boolean onCreateOptionsMenu(Menu menu) { 

        // Inflate the menu; this adds items to the action bar if it is present. 

        getMenuInflater().inflate(R.menu.activity_main, menu); 

        return true; 

    } 

      } 

Ouput

make a phone calls in android programaticallymake a phone calls in android programatically