Add PhoneStateListener Add PhoneStateListener android android

Add PhoneStateListener


You have to create a receiver to catch phone calls.

To do this, add this in your in manifest.xml:

<uses-permission android:name="android.permission.READ_PHONE_STATE" /><receiver android:name=".ServiceReceiver">    <intent-filter>      <action android:name="android.intent.action.PHONE_STATE" />   </intent-filter></receiver>

and create these classes:

import android.telephony.PhoneStateListener;import android.telephony.TelephonyManager;import android.util.Log;import android.webkit.WebView;public class MyPhoneStateListener extends PhoneStateListener {    public static Boolean phoneRinging = false;    public void onCallStateChanged(int state, String incomingNumber) {        switch (state) {        case TelephonyManager.CALL_STATE_IDLE:            Log.d("DEBUG", "IDLE");            phoneRinging = false;            break;        case TelephonyManager.CALL_STATE_OFFHOOK:            Log.d("DEBUG", "OFFHOOK");            phoneRinging = false;            break;        case TelephonyManager.CALL_STATE_RINGING:            Log.d("DEBUG", "RINGING");            phoneRinging = true;            break;        }    }}
import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.telephony.PhoneStateListener;import android.telephony.TelephonyManager;public class ServiceReceiver extends BroadcastReceiver {    TelephonyManager telephony;    public void onReceive(Context context, Intent intent) {        MyPhoneStateListener phoneListener = new MyPhoneStateListener();        telephony = (TelephonyManager) context                .getSystemService(Context.TELEPHONY_SERVICE);        telephony.listen(phoneListener, PhoneStateListener.LISTEN_CALL_STATE);    }    public void onDestroy() {        telephony.listen(null, PhoneStateListener.LISTEN_NONE);    }}