Вы должны использовать TelephonyManager для обработки вызовов. Взгляните на следующий класс ...
private class PhoneCallListener extends PhoneStateListener {
private boolean phoneInACall = false;
@Override
public void onCallStateChanged(int state, String incomingNumber) {
if (TelephonyManager.CALL_STATE_RINGING == state) {
// THE PHONE IS CURRENTLY RINGING!
}
if (TelephonyManager.CALL_STATE_OFFHOOK == state) {
// THE PHONE IS ACTIVE, DIALING OR ON HOLD!
phoneInACall = true;
}
if (TelephonyManager.CALL_STATE_IDLE == state) {
// IDLE - NO ACTIVITY. IF PHONEINACALL WAS TRUE, IT MEANS THE CALL ENDED
if (phoneInACall) {
// RESTART YOUR MAIN ACTIVITY BECAUSE A CALL ENDED!
phoneCalling = false;
}
}
}
}
Вы можете использовать этот класс в вашем OnCreate методом путем создания экземпляра этого PhoneStateListener и получение экземпляра TelephonyManager назвать слушать метод слушать, чтобы получать уведомления об изменениях в указанных состояниях телефонии ...
PhoneCallListener phoneCallListener = new PhoneCallListener();
TelephonyManager telManager = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
telManager.listen(phoneCallListener, PhoneStateListener.LISTEN_CALL_STATE);
Этот код должен помочь вам решить ваши проблемы :) Удачи!