Monday, June 3, 2013

Incoming Call Reciever In Android

http://learnandroideasily.blogspot.kr/2013/05/incoming-call-reciever-in-android.html

Incoming Call Reciever In Android

Learn Android Development


In previous I discussed about how to handle incoming call or how to listen for Incoming call using Activity, In this post I will discuss the same using Broadcast Receiver.

Broadcast Receiver is better way than Activity to listen for Incoming Calls.

So declare the Permission and Receiver in Manifest

Permission Required:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

Declare the receiver and register it to listen "android.intent.action.PHONE_STATE" action

android.manifest


< manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.incomingcallreciever"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >


<receiver android:name=".IncommingCallReceiver" android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>

</application>

< /manifest>







Incoming Call Receiver




import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.TelephonyManager;
import android.widget.Toast;


public class IncommingCallReceiver extends BroadcastReceiver
{

Context mContext;


@Override
public void onReceive(Context mContext, Intent intent)
{
try
{

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



if(state.equals(TelephonyManager.EXTRA_STATE_RINGING))
{
Toast.makeText(mContext, "Phone Is Ringing", Toast.LENGTH_LONG).show();
// Your Code
}

if(state.equals(TelephonyManager.EXTRA_STATE_OFFHOOK))
{
Toast.makeText(mContext, "Call Recieved", Toast.LENGTH_LONG).show();
// Your Code
}

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

Toast.makeText(mContext, "Phone Is Idle", Toast.LENGTH_LONG).show();
// Your Code

}
}
catch(Exception e)
{
//your custom message
}

}

}





No comments:

Post a Comment