Android Get Call State 2

Education is not limited to just classrooms. It can be gained anytime, anywhere... - Ravi Ranjan (M.Tech-NIT)

Android Call State BroadCastReceiver Example

activity_main.xml

  1. <RelativeLayout xmlns:androclass="http://schemas.android.com/apk/res/android"

  2.     xmlns:tools="http://schemas.android.com/tools"  

  3.     android:layout_width="match_parent"  

  4.     android:layout_height="match_parent"  

  5.     android:paddingBottom="@dimen/activity_vertical_margin"  

  6.     android:paddingLeft="@dimen/activity_horizontal_margin"  

  7.     android:paddingRight="@dimen/activity_horizontal_margin"  

  8.     android:paddingTop="@dimen/activity_vertical_margin"  

  9.     tools:context=".MainActivity" >  

  10.   

  11.     

  12.         android:layout_width="wrap_content"  

  13.         android:layout_height="wrap_content"  

  14.         android:text="@string/hello_world" />  

  15.   

  16.   

Activity class

File: MainActivity.java

  1. package com.example.callstatebroadcastreceiver;  

  2.   

  3. import android.os.Bundle;  

  4. import android.app.Activity;  

  5. import android.view.Menu;  

  6.   

  7. public class MainActivity extends Activity {  

  8.   

  9.     @Override  

  10.     protected void onCreate(Bundle savedInstanceState) {  

  11.         super.onCreate(savedInstanceState);  

  12.         setContentView(R.layout.activity_main);  

  13.     }  

  14.   

  15.   

  16.     @Override  

  17.     public boolean onCreateOptionsMenu(Menu menu) {  

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

  19.         getMenuInflater().inflate(R.menu.main, menu);  

  20.         return true;  

  21.     }  

  22.       

  23. }  


IncommingCallReceiver

File: IncommingCallReceiver.java

  1. package com.example.callstatebroadcastreceiver;  

  2.   

  3. import android.content.BroadcastReceiver;  

  4. import android.content.Context;  

  5. import android.content.Intent;  

  6. import android.telephony.TelephonyManager;  

  7. import android.widget.Toast;  

  8.   

  9.   

  10.  public class IncommingCallReceiver extends BroadcastReceiver{  

  11.       Context context;  

  12.          

  13.       @Override  

  14.       public void onReceive(Context context, Intent intent){  

  15.           try{  

  16.            String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);  

  17.   

  18.               if(state.equals(TelephonyManager.EXTRA_STATE_RINGING)){  

  19.                    Toast.makeText(context, "Phone Is Ringing", Toast.LENGTH_LONG).show();  

  20.               }  

  21.                 

  22.               if(state.equals(TelephonyManager.EXTRA_STATE_OFFHOOK)){  

  23.                    Toast.makeText(context, "Call Recieved", Toast.LENGTH_LONG).show();  

  24.               }  

  25.                 

  26.               if (state.equals(TelephonyManager.EXTRA_STATE_IDLE)){  

  27.                    Toast.makeText(context, "Phone Is Idle", Toast.LENGTH_LONG).show();  

  28.               }  

  29.           }  

  30.           catch(Exception e){e.printStackTrace();}  

  31.       }  

  32.         

  33. }