

{"id":76375,"date":"2020-02-28T09:23:41","date_gmt":"2020-02-28T03:53:41","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=76375"},"modified":"2021-08-25T14:04:53","modified_gmt":"2021-08-25T08:34:53","slug":"calling-app-in-android","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/calling-app-in-android\/","title":{"rendered":"Calling App in Android &#8211; Know the required methods to enable call feature in your app"},"content":{"rendered":"<div class='__iawmlf-post-loop-links' style='display:none;' data-iawmlf-post-links='[{&quot;id&quot;:1177,&quot;href&quot;:&quot;https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/Business_Process_Framework_(eTOM)&quot;,&quot;archived_href&quot;:&quot;http:\\\/\\\/web-wp.archive.org\\\/web\\\/20251004220307\\\/https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/Business_Process_Framework_(eTOM)&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2025-12-09 02:38:51&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2025-12-19 23:56:17&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-12 08:38:08&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-25 16:02:58&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-01-29 07:49:06&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-02 19:32:14&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-10 08:25:40&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-25 04:13:08&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-23 06:04:08&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-27 08:42:52&quot;,&quot;http_code&quot;:429},{&quot;date&quot;:&quot;2026-04-17 03:33:23&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-20 13:17:15&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-04-26 14:40:44&quot;,&quot;http_code&quot;:429},{&quot;date&quot;:&quot;2026-05-02 16:30:03&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-05 17:08:25&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-09 00:46:22&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-05-21 10:36:52&quot;,&quot;http_code&quot;:429},{&quot;date&quot;:&quot;2026-06-03 15:45:35&quot;,&quot;http_code&quot;:200}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-06-03 15:45:35&quot;,&quot;http_code&quot;:200},&quot;process&quot;:&quot;done&quot;}]'><\/div>\n<p>The second important feature among the three features that we know is the Calling by Android. When we are at some distance from our near and dear ones and can\u2019t be with them. All that we do is make a phone call to them.<br \/>\nAndroid provides us this facility to add the feature of call in our application. In this article, we will be discussing the feature of the Calling app in Android. Also, we will see how we can add this calling service in our <a href=\"https:\/\/data-flair.training\/blogs\/create-android-app\/\"><em><strong>Android Application<\/strong> <\/em><\/a>with an example.<\/p>\n<p>Android lets us place a call using the built-in application. This app is very easy to use and can make a call to whoever we want. Nonetheless, it also lets us provide users with the feature of placing calls through our app. We can make calls from our applications by using the built-in application Intent for calling. We use <strong>action<\/strong> Intent for this, which is <strong>ACTION_CALL<\/strong>.<\/p>\n<p><em><strong>Get to know in detail about <a href=\"https:\/\/data-flair.training\/blogs\/android-intent\/\">Android Intents<\/a> with DataFlair.<\/strong><\/em><\/p>\n<p>When we use the intent object <strong>ACTION_CALL<\/strong> and pass proper data to it, it helps us to launch the built-in phone call application to make a phone call. Did you ask <strong>How?<\/strong><\/p>\n<h2>How to Make Calling App in Android?<\/h2>\n<p>Okay, that is quite as simple as I am showing in the following:<\/p>\n<ul>\n<li><strong>Action in Intent to Make a Phone Call<\/strong><\/li>\n<\/ul>\n<p>We know the action that we will use is <strong>ACTION_CALL<\/strong>.<\/p>\n<p>And we will use the following syntax and write it like this to add action call:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Intent myIntent = new Intent(Intent.ACTION_CALL); \/\/ this is for Action_call<\/pre>\n<p>Or we can also use <strong>ACTION_DIAL<\/strong> if we want to get the number from the user and then place a call.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Intent myDialIntent = new Intent(Intent.ACTION_DIAL); \/\/ this is for Action_Dial<\/pre>\n<ul>\n<li><strong>Data in Intent to Make a Phone Call<\/strong><\/li>\n<\/ul>\n<p>Now, suppose we want to make a phone call to a given number say -91-1234567890. We will set the number using setData in <strong>tel<\/strong>: as URI like shown below:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">myIntent.setData(Uri.parse(\"tel:91-123-456-7890\"));<\/pre>\n<p>And if we want to take the number from the user, we will use the getData from the user<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">myIntent.setData(Uri.parse(\"tel:\"+text_Phone.getText().toString()));\r\nstartActivity(myIntent);<\/pre>\n<h3>Common Calling Scenarios<a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/common-calling-scenarios-in-android.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-76457 size-full\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/common-calling-scenarios-in-android.jpg\" alt=\"calling scenarios in android\" width=\"570\" height=\"332\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/common-calling-scenarios-in-android.jpg 570w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/common-calling-scenarios-in-android-150x87.jpg 150w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/common-calling-scenarios-in-android-300x175.jpg 300w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/common-calling-scenarios-in-android-520x303.jpg 520w\" sizes=\"auto, (max-width: 570px) 100vw, 570px\" \/><\/a><\/h3>\n<p>While we make use of <strong>ConntectionService API<\/strong> we also interact with some other classes of <strong>android.telecom package<\/strong>. Let us see some of the common calling scenarios and how apps use the API to handle them. There are three scenarios that are:<\/p>\n<h4>1. Answer the Call<\/h4>\n<p>To handle incoming calls we need to consider if other apps are on call or not. It\u2019s so because the telecom subsystem establishes some constraints when there are active calls in other apps. Consider the following two cases:<\/p>\n<p><strong>A. No Other App on Call<\/strong><\/p>\n<ul>\n<li>Your App receives a call.<\/li>\n<li>Call <strong>addNewIncomingCall(PhoneAccountHandle, Bundle)<\/strong> to inform the telecom subsystem about it.<\/li>\n<li>This subsystem binds to your app\u2019s<strong> ConnectionService<\/strong> implementation. It then requests a new instance of the <strong>Connection<\/strong> class using, <strong>onCreateIncomingConnection(PhoneAccountHandle, ConnectionRequest)<\/strong>.<\/li>\n<li>This subsystem informs the app to show incoming calls to users using <strong>onShowIncomingCallUi()<\/strong>.<\/li>\n<li>Call <strong>setActive()<\/strong> if the user accepts the incoming call. If not, <strong>setDisconnected(DisconnectCause)<\/strong> specifying <strong>REJECTED<\/strong> as parameter, is followed by the <strong>Destroy()<\/strong> method.<\/li>\n<\/ul>\n<p><strong>B. Other App has Active Call that can\u2019t be Put on Hold<\/strong><\/p>\n<p>To answer a call while a call that can\u2019t be put on hold is going on, follow the following:<\/p>\n<ul>\n<li>Incoming call receives a new call.<\/li>\n<li>Call <strong>addNewIncomingCall(PhoneAccountHandle, Bundle)<\/strong> to inform the telecom subsystem about it.<\/li>\n<li>This subsystem binds to your app\u2019s <strong>ConnectionService<\/strong> implementation. It then requests a new instance of the Connection object using, <strong>onCreateIncomingConnection(PhoneAccountHandle, ConnectionRequest)<\/strong>.<\/li>\n<li>The telecom subsystem displays the incoming call on UI.<\/li>\n<li>If the user accepts the call, this subsystem invokes the <strong>onAnswer()<\/strong> method. To indicate the telecom subsystem, we will call <strong>setActive()<\/strong>.<\/li>\n<li>If the user rejects the call, this subsystem invokes the <strong>onReject()<\/strong> method. We will call<strong> setDisconnected(DisconnectCause)<\/strong> and pass <strong>REJECTED<\/strong> as parameter.<\/li>\n<li>And we will call the <strong>Destroy()<\/strong> method.<\/li>\n<\/ul>\n<h4>2. Place a Call<\/h4>\n<p>While dealing with the process of placing a call, we need to handle the possibility that the call cannot be connected because of some constraints imposed by the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Business_Process_Framework_(eTOM)\">telecom framework<\/a>.<\/p>\n<p>In order to place a call we need to follow the following:<\/p>\n<p><strong>A.<\/strong> Initiate a call from the application.<\/p>\n<p><strong>B.<\/strong> Use the method placeCall(call, bundle) and inform the telecom subsystem about the new call. Now pass the parameters as following:<\/p>\n<ul>\n<li>The <strong>Uri<\/strong> parameter represents the address of the callee. For numbers use <strong>tel<\/strong>:<\/li>\n<li>The <strong>Bundle<\/strong>: parameter provides information about the application. It\u2019s done by adding the <strong>PhoneAccountHandle<\/strong> object of the app to <strong>EXTRA_PHONE_ACCOUNT_HANDLE<\/strong> extra.<\/li>\n<li>The <strong>Bundle<\/strong>: parameter can also specify if it includes video by specifying <strong>EXTRA_START_CALL_WITH_VIDEO_STATE<\/strong> .<\/li>\n<li>This telecom subsystem binds to the app\u2019s ConnectService implementation.<\/li>\n<\/ul>\n<p><strong>a.<\/strong> If the app is unable to call, the subsystem invokes onCreateOutgoingConnectionFailed(PhoneAccountHandle, ConnectionRequest). It informs the app that the call can\u2019t be placed.<\/p>\n<p><strong>b.<\/strong> If the app is able to call, it invokes onCreateOutgoingConnectionFailed(PhoneAccountHandle, ConnectionRequest). It informs the app that the call can\u2019t be placed.<\/p>\n<ul>\n<li>After the call is active, invoke setActive() to inform the telecom subsystem about the same.<\/li>\n<\/ul>\n<h4>3. End a Call<\/h4>\n<p>After the call is connected we would need to end the call, and to end it:<\/p>\n<ul>\n<li>Call the method <strong>setDisconnected( DisconnectCause)<\/strong>.<\/li>\n<li>If the call is terminated by the user LOCAL is passed as parameter. <strong>REMOTE<\/strong> is passed if the call is disconnected by a third party.<\/li>\n<li>After that call the <strong>destroy()<\/strong> method.<\/li>\n<\/ul>\n<h3>Implementation of Calling App in Android in Our Application<\/h3>\n<p><strong>Step 1:<\/strong> First of all we will create a new project and fill in the details. Then we will open the <strong>activity_main.xml file<\/strong>, and define the layout as follow:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\r\n&lt;LinearLayout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\r\n   xmlns:tools=\"http:\/\/schemas.android.com\/tools\"\r\n   android:orientation=\"vertical\"    android:layout_width=\"match_parent\"\r\n   android:layout_height=\"match_parent\"&gt;\r\n\r\n   &lt;TextView\r\n       android:id=\"@+id\/textView2\"\r\n       android:layout_width=\"wrap_content\"\r\n       android:layout_height=\"wrap_content\"\r\n       android:layout_centerHorizontal=\"true\"\r\n       android:layout_marginLeft=\"100dp\"\r\n       android:layout_marginTop=\"100dp\"\r\n       android:fontFamily=\"@font\/aclonica\"\r\n       android:text=\"DataFlair \"\r\n       android:textColor=\"@color\/colorPrimaryDark\"\r\n       android:textSize=\"50dp\" \/&gt;\r\n\r\n   &lt;TextView\r\n       android:id=\"@+id\/fstTxt\"\r\n       android:layout_width=\"wrap_content\"\r\n       android:layout_height=\"wrap_content\"\r\n       android:layout_marginLeft=\"100dp\"\r\n       android:layout_marginTop=\"100dp\"\r\n       android:fontFamily=\"@font\/acme\"\r\n       android:text=\"Please Enter the Mobile No\"\r\n       android:textColor=\"#0F8B80\"\r\n       android:textSize=\"20dp\" \/&gt;\r\n\r\n   &lt;EditText\r\n       android:id=\"@+id\/mblTxt\"\r\n       android:layout_width=\"wrap_content\"\r\n       android:layout_height=\"wrap_content\"\r\n       android:layout_marginLeft=\"100dp\"\r\n       android:ems=\"10\"\r\n       android:hint=\"Enter the number here\"\r\n       android:textColor=\"#84E2DB\"\r\n       tools:layout_marginTop=\"20dp\"&gt;&lt;\/EditText&gt;\r\n\r\n   &lt;Button\r\n       android:id=\"@+id\/btnCall\"\r\n       android:layout_width=\"wrap_content\"\r\n       android:layout_height=\"wrap_content\"\r\n       android:layout_marginLeft=\"150dp\"\r\n       android:layout_marginTop=\"20dp\"\r\n       android:text=\"Dial\" \/&gt;\r\n&lt;\/LinearLayout&gt;<\/pre>\n<p><strong>Step 2:<\/strong> Now we will do the coding for the working in <strong>MainActivity.java<\/strong> file. We will write the following code:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">package com.DataFlair.callexample;\r\n\r\nimport android.Manifest;\r\nimport android.content.Intent;\r\nimport android.content.pm.PackageManager;\r\nimport android.net.Uri;\r\nimport android.os.Build;\r\nimport android.os.Bundle;\r\nimport android.view.View;\r\nimport android.widget.Button;\r\nimport android.widget.EditText;\r\nimport androidx.appcompat.app.AppCompatActivity;\r\nimport androidx.core.app.ActivityCompat;\r\n\r\npublic class MainActivity extends AppCompatActivity {\r\n   private EditText text_Phone;\r\n   private Button b_utton;\r\n   @Override\r\n   protected void onCreate(Bundle savedInstanceState) {\r\n       super.onCreate(savedInstanceState);\r\n       setContentView(R.layout.activity_main);\r\n       text_Phone = (EditText) findViewById(R.id.mblTxt);\r\n      mybutton = (Button) findViewById(R.id.btnCall);\r\n      mybutton.setOnClickListener(new View.OnClickListener() {\r\n           @Override\r\n           public void onClick(View v) {\r\n               callPhoneNumber();\r\n           }\r\n       });\r\n   }\r\n   @Override\r\n   public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {\r\n       if (requestCode == 101) {\r\n           if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {\r\n               callPhoneNumber();\r\n           }\r\n       }\r\n   }\r\n   public void callPhoneNumber() {\r\n       try {\r\n           if (Build.VERSION.SDK_INT &gt; 22) {\r\n               if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) !=PackageManager.PERMISSION_GRANTED) {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ActivityCompat.requestPermissions(MainActivity.this, new String[]{\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Manifest.permission.CALL_PHONE}, 101);\r\n                   return;\r\n               }\r\n               Intent callIntent = new Intent(Intent.ACTION_CALL);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0callIntent.setData(Uri.parse(\"tel:\" + text_Phone.getText().toString()));\r\n               startActivity(callIntent);\r\n           } else {\r\n               Intent callIntent = new Intent(Intent.ACTION_CALL);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0callIntent.setData(Uri.parse(\"tel:\" + text_Phone.getText().toString()));\r\n               startActivity(callIntent);\r\n           }\r\n       } catch (Exception ex) {\r\n           ex.printStackTrace();\r\n       }\r\n   }\r\n}<\/pre>\n<p><strong>Step 3:<\/strong> Now we will update the <strong>Manifest.xml<\/strong> file, as follow:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\r\n&lt;manifest xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\r\n   package=\"com.DataFlair.callexample\"&gt;\r\n   &lt;uses-permission android:name=\"android.permission.CALL_PHONE\" \/&gt;\r\n   &lt;application\r\n       android:allowBackup=\"true\"\r\n       android:icon=\"@mipmap\/ic_launcher\"\r\n       android:label=\"@string\/app_name\"\r\n       android:roundIcon=\"@mipmap\/ic_launcher_round\"\r\n       android:supportsRtl=\"true\"\r\n       android:theme=\"@style\/AppTheme\"&gt;\r\n       &lt;activity android:name=\".MainActivity\"&gt;\r\n           &lt;intent-filter&gt;\r\n               &lt;action android:name=\"android.intent.action.MAIN\" \/&gt;\r\n               &lt;category android:name=\"android.intent.category.LAUNCHER\" \/&gt;\r\n           &lt;\/intent-filter&gt;\r\n       &lt;\/activity&gt;\r\n       &lt;meta-data\r\n           android:name=\"preloaded_fonts\"\r\n           android:resource=\"@array\/preloaded_fonts\" \/&gt;\r\n   &lt;\/application&gt;\r\n&lt;\/manifest&gt;<\/pre>\n<p><strong>Step 4:<\/strong> Now we will run the application as follows:<\/p>\n<p><strong>i)<\/strong> The app will look like this:<a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/call-sample.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-76420 size-full\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/call-sample.jpg\" alt=\"calling app in android\" width=\"246\" height=\"533\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/call-sample.jpg 246w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/call-sample-69x150.jpg 69w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/call-sample-138x300.jpg 138w\" sizes=\"auto, (max-width: 246px) 100vw, 246px\" \/><\/a><\/p>\n<p><strong>ii)<\/strong> Then we will enter a number:<a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/enter-number.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-76425 size-full\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/enter-number.jpg\" alt=\"enter number in android\" width=\"246\" height=\"533\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/enter-number.jpg 246w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/enter-number-69x150.jpg 69w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/enter-number-138x300.jpg 138w\" sizes=\"auto, (max-width: 246px) 100vw, 246px\" \/><\/a><\/p>\n<p><strong>iii)<\/strong> As soon as we will press Dial, it will ask for permission and we will allow it.<a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/allow-permission.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-76421 size-full\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/allow-permission.jpg\" alt=\"allow permission to do calling\" width=\"246\" height=\"533\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/allow-permission.jpg 246w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/allow-permission-69x150.jpg 69w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/allow-permission-138x300.jpg 138w\" sizes=\"auto, (max-width: 246px) 100vw, 246px\" \/><\/a><\/p>\n<p><strong>iv)<\/strong> After that, the Call would be placed.<a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/place-call.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-76422 size-full\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/place-call.jpg\" alt=\"place call in android calling app\" width=\"246\" height=\"533\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/place-call.jpg 246w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/place-call-69x150.jpg 69w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/place-call-138x300.jpg 138w\" sizes=\"auto, (max-width: 246px) 100vw, 246px\" \/><\/a><\/p>\n<h2>Summary<\/h2>\n<p>In this article, we are done with the feature of the Calling app in Android. We have seen how we can implement calling in our application. We have also seen the required methods for enabling the call feature in our app. Now it is your turn to implement and let me know. In the next article, we will see the email feature of Android.<\/p>\n<p>If you have any queries regarding DataFlair&#8217;s Calling App in Android article, mention them in the comment section.<\/p>\n<p>Happy Learning\ud83d\ude03<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The second important feature among the three features that we know is the Calling by Android. When we are at some distance from our near and dear ones and can\u2019t be with them. All&#46;&#46;&#46;<\/p>\n","protected":false},"author":5,"featured_media":76444,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18722],"tags":[22001,22002,21999,22000,21998],"class_list":["post-76375","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android","tag-android-calling-app","tag-calling-app-in-android","tag-common-calling-scenarios","tag-how-to-make-calling-app-in-android","tag-implementation-of-calling-app-in-android-in-our-application"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Calling App in Android - Know the required methods to enable call feature in your app - DataFlair<\/title>\n<meta name=\"description\" content=\"Get to know about the feature of calling app in android and learn how to implement calling in your application. Also, see the required methods for enabling the call feature in your app.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/calling-app-in-android\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Calling App in Android - Know the required methods to enable call feature in your app - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Get to know about the feature of calling app in android and learn how to implement calling in your application. Also, see the required methods for enabling the call feature in your app.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/calling-app-in-android\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-02-28T03:53:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-08-25T08:34:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/calling-app-in-android.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"802\" \/>\n\t<meta property=\"og:image:height\" content=\"420\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Calling App in Android - Know the required methods to enable call feature in your app - DataFlair","description":"Get to know about the feature of calling app in android and learn how to implement calling in your application. Also, see the required methods for enabling the call feature in your app.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/calling-app-in-android\/","og_locale":"en_US","og_type":"article","og_title":"Calling App in Android - Know the required methods to enable call feature in your app - DataFlair","og_description":"Get to know about the feature of calling app in android and learn how to implement calling in your application. Also, see the required methods for enabling the call feature in your app.","og_url":"https:\/\/data-flair.training\/blogs\/calling-app-in-android\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2020-02-28T03:53:41+00:00","article_modified_time":"2021-08-25T08:34:53+00:00","og_image":[{"width":802,"height":420,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/calling-app-in-android.jpg","type":"image\/jpeg"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/calling-app-in-android\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/calling-app-in-android\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/7f83c342f5d1632d6f7b4b0b0f447823"},"headline":"Calling App in Android &#8211; Know the required methods to enable call feature in your app","datePublished":"2020-02-28T03:53:41+00:00","dateModified":"2021-08-25T08:34:53+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/calling-app-in-android\/"},"wordCount":1116,"commentCount":5,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/calling-app-in-android\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/calling-app-in-android.jpg","keywords":["android calling app","calling app in android","Common Calling Scenarios","How to Make Calling App in Android?","Implementation of Calling App in Android in Our Application"],"articleSection":["Android Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/calling-app-in-android\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/calling-app-in-android\/","url":"https:\/\/data-flair.training\/blogs\/calling-app-in-android\/","name":"Calling App in Android - Know the required methods to enable call feature in your app - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/calling-app-in-android\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/calling-app-in-android\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/calling-app-in-android.jpg","datePublished":"2020-02-28T03:53:41+00:00","dateModified":"2021-08-25T08:34:53+00:00","description":"Get to know about the feature of calling app in android and learn how to implement calling in your application. Also, see the required methods for enabling the call feature in your app.","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/calling-app-in-android\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/calling-app-in-android\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/calling-app-in-android\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/calling-app-in-android.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2020\/02\/calling-app-in-android.jpg","width":802,"height":420,"caption":"android calling app"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/calling-app-in-android\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"Android Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/android\/"},{"@type":"ListItem","position":3,"name":"Calling App in Android &#8211; Know the required methods to enable call feature in your app"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/7f83c342f5d1632d6f7b4b0b0f447823","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/4cf3a74600d131330b8c481d519afd1574093ed89f6d3396a95393ad223eb7cd?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4cf3a74600d131330b8c481d519afd1574093ed89f6d3396a95393ad223eb7cd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4cf3a74600d131330b8c481d519afd1574093ed89f6d3396a95393ad223eb7cd?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"DataFlair Team creates expert-level guides on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our goal is to empower learners with easy-to-understand content. Explore our resources for career growth and practical learning.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam1\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/76375","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=76375"}],"version-history":[{"count":7,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/76375\/revisions"}],"predecessor-version":[{"id":76458,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/76375\/revisions\/76458"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/76444"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=76375"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=76375"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=76375"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}