Aumentar la respuesta inicial del podómetro en iOS

Estoy construyendo una aplicación basada en la location interior con iBeacons sin embargo, estoy usando una gran cantidad de sensores de iPhone para get una representación precisa del movimiento (velocidad, dirección, etc.) Actualmente estoy atrapado con el podómetro CoreMotion y es propiedad de conteo escalonado. Tengo un código que simplemente count los pasos y los imprime en una label y me he dado count de que lleva alnetworkingedor de 10 pasos antes de que el dispositivo registre mi movimiento y luego actualice la label cada tres o cuatro pasos. Estas actualizaciones en el estado de "caminar" están bien, pero estoy interesado en saber si es posible acelerar la respuesta inicial y la transición de estacionario -> caminar y en lugar de 10 networkingucirlo a 5 lo que sería aceptable. Este es el código para contar los pasos:

if(CMPedometer.isStepCountingAvailable()){ self.pedoMeter.queryPedometerDataFromDate(NSDate(), toDate: NSDate()) { (data : CMPedometerData!, error) -> Void in dispatch_async(dispatch_get_main_queue(), { () -> Void in if(error == nil){ self.steps.text = "\(data.numberOfSteps)" } }) } self.pedoMeter.startPedometerUpdatesFromDate(NSDate()) { (data: CMPedometerData!, error) -> Void in dispatch_async(dispatch_get_main_queue(), { () -> Void in if(error == nil){ self.steps.text = "\(data.numberOfSteps)" } }) } } } 

También he aumentado el intervalo de actualización al máximo

 manager.deviceMotionUpdateInterval = 0 

Y estas son las classs que estoy usando

 let activityManager = CMMotionActivityManager() let manager = CMMotionManager() let pedoMeter = CMPedometer() 

No puede hacer eso porque Apple tiene un límite en el intervalo de actualización basado en el dispositivo que está utilizando. El intervalo más grande que puede tener es 0.01 segundos. Los podómetros generalmente funcionan mejor en distancias más largas, debe usar los datos del acelerómetro para eso.

 self.pedoMeter.startPedometerUpdatesFromDate(NSDate()) { (data: CMPedometerData!, error) -> Void in dispatch_async(dispatch_get_main_queue(), { () -> Void in if(error == nil){ self.steps.text = "\(data.numberOfSteps)" } }) } 

No se puede invocar startPedometerUpdatesFromDate obteniendo error en startPedometerUpdatesFromDate 2.0, pero funcionando bien en Swift 1.2.

    Intereting Posts