我希望能够在我的应用程序中使用相机记录来自加速度计和GPS的数据。目标是在拍摄照片的确切时刻获取加速度计和GPS数据。我能够访问传感器并让它们连续记录数据,但我不知道如何让它们在捕获图像时停止记录数据。我正在使用Xcode 9和Swift 4。
答案 0 :(得分:0)
let cm = CMMotionManager()
let lm = CLLocationManager()
var motionUpdates: CMDeviceMotion?
var locationUpdates: CLLocation?
cm.accelerometerUpdateInterval = 1
cm.startDeviceMotionUpdates(to: OperationQueue.current!) { (data, error) in
motionUpdates = data
}
lm = CLLocationManager()
lm.delegate = self
lm.stopUpdatingLocation()
lm.desiredAccuracy = kCLLocationAccuracyBest
lm.startUpdatingLocation()
func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
locationUpdates = manager.location
}
// --------------------------
func stopMotionUpdates() {
cm.stopDeviceMotionUpdates()
}
func stopLocationUpdates() {
lm.stopUpdatingLocation()
}
拍摄照片后,请致电stopLocationUpdates()
& stopMotionUpdates()
您的最新数据将存储在motionUpdates
和locationUpdates