swift - CMCalibratedMagneticField 字段始终为 0
问题描述
我试图获取轴 x、y 和 z 的 magnometerData。但它总是返回 0。准确度为 -1。
这意味着运动未校准。但是我该如何校准呢?
func detect() {
motionManager.startMagnetometerUpdates()
motionManager.startDeviceMotionUpdates()
var motion = CMDeviceMotion()
//var mmd = CMMagnetometerData()
motionManager.showsDeviceMovementDisplay = true
if motionManager.deviceMotion != nil && motionManager.magnetometerData != nil{
motion = motionManager.deviceMotion!
//mmd = self.motionManager.magnetometerData!
print("motion ", motion.magneticField.accuracy.rawValue)
let _magfield = CMCalibratedMagneticField(field: motion.magneticField.field, accuracy: motion.magneticField.accuracy)
print("_magfield ",_magfield.accuracy.rawValue)
let magnetometerData = _magfield.field
x.text = "X: " + String(format:"%f", magnetometerData.x)
y.text = "Y: " + String(format:"%f", magnetometerData.y)
z.text = "Z: " + String(format:"%f", magnetometerData.z)
let _strenght = sqrt(pow(magnetometerData.x, 2) + pow(magnetometerData.y, 2) + pow(magnetometerData.z, 2))
textarea.insertText("\n" + String(format:"%.2f", _strenght))
}
解决方案
推荐阅读
- cakephp - cakePhp 中的简单查询问题
- sql - 使用 SQL Alchemy 在与 SQL 数据库的连接字符串中包含反斜杠
- c# - 有没有办法从所有 Outlook 的共享日历中检索事件(约会)?
- c# - WPF 控件,绑定到视图模型上的列表的属性,想在 Xaml 中定义列表
- azure-active-directory - 无法在 azure graph-api 中使用 RoleManagement API 端点获取
- javascript - React 类组件中带有真值或假值的复选框抛出错误?
- haskell - Haskell "With" 数据类型
- c++ - 如何在类定义中声明指向正在定义的类的指针?
- python - 从网站上的表格中解析数据,其中零条目输入为“-”
- javascript - 在 2D 平面上动态生成倾斜和旋转元素的静态元素上的碰撞检测