- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to detect calls in an android device?
This example demonstrates how do I detect phone calls in android.
Step 1 − Create a new project in Android Studio, go to File ⇒ New Project and fill all required details to create a new project.
Step 2 − Add the following code to res/layout/activity_main.xml.
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="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"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" android:textStyle="bold" android:textColor="@color/colorPrimary" android:layout_centerInParent="true" /> </RelativeLayout>
Step 3 − Add the following code to src/MainActivity.java
import android.Manifest; import android.content.pm.PackageManager; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.Toast; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED){ if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, Manifest.permission.READ_PHONE_STATE)){ ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_PHONE_STATE}, 1); }else{ ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_PHONE_STATE}, 1); } }else{ notify(); } } @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults){ switch (requestCode){ case 1: { if (grantResults.length>0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){ if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_PHONE_STATE)==PackageManager.PERMISSION_GRANTED){ Toast.makeText(this, "Permission Granted", Toast.LENGTH_SHORT).show(); } }else{ Toast.makeText(this, "Permission Denied", Toast.LENGTH_SHORT).show(); } return; } } } }
Step 4 − Create a java class (DetectCalls) and add the following code in DetectCalls.java
import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.widget.Toast; public class DetectCalls extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { try{ Toast.makeText(context, "Ringing!", Toast.LENGTH_SHORT).show(); }catch (Exception e){ e.printStackTrace(); } } }
Step 5 − Add the following code to androidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="app.com.sample"> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name=".DetectCalls"> <intent-filter> <action android:name="android.intent.action.PHONE_STATE"/> </intent-filter> </receiver> </application> </manifest>
Let's try to run your application. I assume you have connected your actual Android Mobile device with your computer. To run the app from android studio, open one of your project's activity files and click Run icon from the toolbar. Select your mobile device as an option and then check your mobile device which will display your default screen −
Click here to download the project code.
- Related Articles
- How to detect Spyware on an Android device?
- How to detect device is Android phone or Android tablet?
- How to make an Android device vibrate?
- How to make an Android device vibrate programmatically?
- How to detect a mobile device with JavaScript?
- How to pickup & hangup calls in Android using Kotlin?
- How to make a call in an Android device using Kotlin?
- How to make an Android device vibrate programmatically using Kotlin?
- How to check if a bluetooth device is connected with an Android device using Kotlin?
- How to detect long press in Android?
- How to pick up and hung up calls in android?
- How to get device id in android?
- How to get device info in android?
- How to get device location in android?
- How to detect user pressing Home Key in an Activity on Android?
