Obtén los pasos en segundo plano con iOS 7

Estoy desarrollando una aplicación en la que debería obtener la cantidad de pasos que hice durante una actividad física. Encontré este código:

- (void)countSteps {
    [[UIAccelerometer sharedAccelerometer] setUpdateInterval:1.0 / KUPDATEFREQUENCY];
    [[UIAccelerometer sharedAccelerometer] setDelegate:self];

    px = py = pz = 0;
    numSteps = 0;

    self.labelSteps.text = [NSString stringWithFormat:@"%d", numSteps];
}

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
    float xx = acceleration.x;
    float yy = acceleration.y;
    float zz = acceleration.z;

    float dot = (px * xx) + (py * yy) + (pz * zz);
    float a = ABS(sqrt(px * px + py * py + pz * pz));
    float b = ABS(sqrt(xx * xx + yy * yy + zz * zz));

    dot /= (a * b);

    if (dot <= 0.82) {
        if (!isSleeping) {
            isSleeping = YES;
            [self performSelector:@selector(wakeUp) withObject:nil afterDelay:0.3];
            numSteps += 1;
            self.labelSteps.text = [NSString stringWithFormat:@"%d", numSteps];
        }
    }
    px = xx;
    py = yy;
    pz = zz;
}

- (void)wakeUp {
    isSleeping = NO;
}

Con este código cuando la pantalla del iPhone está encendida funciona muy bien, pero cuando apago la pantalla ya no funciona. Para rastrear la posición, vi que en iOS 7 hay una función "modo de fondo". Con esta función puedo obtener las coordenadas cuando la pantalla del iPhone está apagada. Ahora tengo que obtener los valores del acelerómetro cuando la pantalla está apagada, ¿cómo puedo hacer eso? Leí en la web que iOS no permite usar el acelerómetro en modo de fondo (solo el iPhone 5s con el coprocesador M7 puede obtener el valor del acelerómetro cuando la pantalla está apagada), cómo puedo contar los pasos usando el acelerómetro en modo de fondo ? Supongo que debería haber una manera, de lo contrario no puedo entender cómoMueve la aplicación trabajos.

Respuestas a la pregunta(1)

Su respuesta a la pregunta