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