package nisrulz.github.sample.callsandsms;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.widget.Toast;
// Listen for call states when in background
public class PhoneCallStateReceiver extends BroadcastReceiver {
private TelephonyManager telephonyManager;
public static boolean isListening = false;
@Override
public void onReceive(final Context context, Intent intent) {
telephonyManager = (TelephonyManager) context.getSystemService(context.TELEPHONY_SERVICE);
PhoneStateListener phoneStateListener = new PhoneStateListener() {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
Toast.makeText(context, "CALL_STATE_IDLE : Detected in BG", Toast.LENGTH_SHORT).show();
break;
case TelephonyManager.CALL_STATE_RINGING:
Toast.makeText(context, "CALL_STATE_RINGING : Detected in BG", Toast.LENGTH_SHORT).show();
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
Toast.makeText(context, "CALL_STATE_OFFHOOK : Detected in BG", Toast.LENGTH_SHORT).show();
break;
}
}
};
if (!isListening) {
telephonyManager.listen(phoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
isListening = true;
}
}
}