CMDeviceMotion.userAcceleration即使在休息时也是积极的

问题描述 投票:-1回答:1

我有以下ViewController

import UIKit
import CoreMotion
class ViewController: UIViewController {
    let motion = CMMotionManager()
    var timer: Timer!

    func handleTick(timer: Timer) -> Void {
        guard let acceleration = self.motion.deviceMotion?.userAcceleration else {
            return
        }

        print(acceleration.x)
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        self.motion.deviceMotionUpdateInterval = interval
        self.motion.startDeviceMotionUpdates()

        self.timer = Timer(fire: Date(), interval: interval, repeats: true, block: self.handleTick)
        RunLoop.current.add(self.timer, forMode: .default)
    }
}

A354290336370468 J-05

-7.16252252459526e-05

-0.000555720180273056

-0.00029446836560964584

0.00029974430799484253

0.00016765855252742767

P 0.846362233161926Ĵ-05

-0.0004231613129377365

0.0002309028059244156

-0.00043283402919769287

这些值不为零,这使得速度计算在不断变化时变得棘手。

什么是摆脱这些明显动作的最佳方法?显然我可以删除接近零的任何东西,但什么是正确的“最小”值?

ios swift accelerometer core-motion
1个回答
0
投票

将设备稳定放置一两分钟而不触摸它并记录您获得的值。 检查您获得的最大值,添加20-30%并将其用作阈值。 如果您打算在车辆中使用您的应用程序,您应该在车内找到阈值。

© www.soinside.com 2019 - 2024. All rights reserved.