iBeacons を使用して屋内位置情報ベースのアプリを構築していますが、正確な動きの表現 (速度、方向など) を取得するために多くの iPhone センサーを使用しています。単純に歩数を数えてラベルに出力するコードがありますが、デバイスが私の動きを登録し、3 つまたは 4 つのステップごとにラベルを更新するまでに約 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()