На самом деле вы можете реагировать на входящий телефонный звонок, просто добавив прослушиватель в TelephonyManager
Вы определяете PhoneStateListener в вашем Сервисе / Деятельности
private PhoneStateListener mPhoneStateListener = new PhoneStateListener() {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
switch (state) {
case TelephonyManager.CALL_STATE_OFFHOOK:
break;
case TelephonyManager.CALL_STATE_RINGING:
break;
case TelephonyManager.CALL_STATE_IDLE:
break;
}
}
};
Затем в методе onCreate:
mTelephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
Наконец вы очищаете слушателя в onDestroy:
mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
Намного проще в этом случае.