La alarma programada nunca llama a la clase de receptor

Estoy tratando de configurar una alarma para que se active cada 5 minutos.

Este es el código para configurar la alarma:

   @Override
public void scheduleAlarmManager() {
    Timber.i("After SignIn sets AlarmManager");
    // broadcast
    Intent intent = new Intent(this, PatientAlarmReceiver.class);
    intent.setAction(PATIENT_START_ALARM_ACTION);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(
            this, REQUEST_CODE, intent, 0);

    // and set alarmManager
    AlarmManager alarm = (AlarmManager)getSystemService(Context.ALARM_SERVICE);

    Calendar currentCal = Calendar.getInstance();
    long currentTIme = currentCal.getTimeInMillis();

    // if there's not an Alarm already set then set one
    if (!isAlarmSet(this)) {
        Timber.i("Alarm not set - so set one");
        alarm.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                currentTIme + TWO_MINS_DURATION, TWO_MINS_DURATION, pendingIntent);
    }

}

y puedo verificar que configuré la alarma correctamente ya que veo en mi registro los mensajes con los que registroTimber.

Mi clase de receptor es:

public class PatientAlarmReceiver extends BroadcastReceiver {

public static final String TAG = "PATIENT-ALARM-RECEIVER";
public static final String PATIENT_START_ALARM_ACTION = "bp.headsup.receivers.alarm.patient";

@Override
public void onReceive(Context context, Intent intent) {
    Log.i(TAG, "Inside OnReceive Patient");
    Timber.i("Inside OnReceive Patient");

    if (intent == null || intent.getAction() == null) {
        return;
    }

    String action = intent.getAction();
    if (PATIENT_START_ALARM_ACTION.equalsIgnoreCase(action)) {
        onStartCheckForConnectionRequest(context);
    }
}

/**
 * If is connected to network starts services
 */
private void onStartCheckForConnectionRequest(Context context) {
    NetworkUtils networkUtils = new NetworkUtils(context);
    if (networkUtils.isNetworkConnected()) {
        Intent checkForConnRequestIntent = new Intent(context, PatientCheckForConnectionRequestService.class);
        context.startService(checkForConnRequestIntent);
        Timber.i("Starts Service From PatientALARMMANAGER");
    }
}

}

Y he declarado en Manifiesto:

        <!-- Receivers -->
    <receiver
        android:name="bp.headsup.receivers.PatientAlarmReceiver" />

También si corro:adb shell dumpsys alarm Puedo ver :

  ELAPSED_WAKEUP #0: Alarm{42d804e8 type 2 bp.headsup.mock}
operation=PendingIntent{42d0c230: PendingIntentRecord{42d0f000 bp.headsup.mock broadcastIntent}}

El conjunto de fuentes que estoy usando es falso. No sé si tiene algo que ver con esto, solo lo menciono.

El problema es que nunca leo en logcat los mensajes que tengo enonReceive en mi clase de Receiver, y obviamente no comienza el servicio. ¿Alguien puede ayudar con eso? Estoy usando un dispositivo que funciona con kitKat 4.4 (api 19) pero también lo probé con un emulador y el resultado fue el mismo.

Respuestas a la pregunta(1)

Su respuesta a la pregunta