我正在使用iBeacons构建一个基于室内位置的应用程序,但是我使用了很多iPhone传感器,以便获得准确的运动表示(速度,方向等)。我目前仍在使用CoreMotion计步器,它具有计步功能。我有一段代码可以简单地计算步骤并将它们打印在标签中,我注意到设备注册我的动作大约需要10个步骤,然后每第三或第四步更新标签。这些处于“步行”状态的更新很好,但是我很想知道是否有可能加快初始响应并从平稳过渡到步行,而不是从10减少到5,这是可以接受的。这是计算步骤的代码:

 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)"
                }
            })
        }

    }
}

我也将更新间隔增加到最大
manager.deviceMotionUpdateInterval = 0

这些是我正在使用的类
let activityManager = CMMotionActivityManager()
let manager = CMMotionManager()
let pedoMeter = CMPedometer()

最佳答案

您无法执行此操作,因为Apple会根据您所使用的设备来限制更新间隔。您可以拥有的最大间隔是0.01秒。计步器通常在更长的距离上效果更好,为此您应该使用加速度计数据。

关于ios - 在iOS上提高计步器的初始响应,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29698373/

10-12 00:24