我试图在我的iOS设备(iPad 2)周围获得磁场值。我一直在谷歌搜索这些主题很长时间,但我找不到任何正常工作的东西。
我试图制作像this这样的东西。
我阅读关于磁场的Apple文档如何获得价值有两个框架可以帮助我核心运动和核心位置但在我的情况下我将使用核心运动通过使用CMDeviceMotion和此属性获取我的设备周围的校准磁场CMCalibratedMagneticField
此属性返回的CMCalibratedMagneticField为您提供了 器件附近的总磁场没有器件偏置。
此代码以SWIFT编写
let manager = CMMotionManager()
var valX: Double!
var valY: Double!
var valZ: Double!
var valAccuracy: Int32!
if manager.deviceMotionAvailable{
manager.deviceMotionUpdateInterval = .1
manager.startDeviceMotionUpdatesToQueue(NSOperationQueue()){
(data: CMDeviceMotion!, error: NSError!) in
if let isError = error{
NSLog("Error: %@", isError)
}
valX = data.magneticField.field.x
valY = data.magneticField.field.y
valZ = data.magneticField.field.z
valAccuracy = data.magneticField.accuracy.value
if values != nil{
values!(x: valX, y: valY, z: valZ, accuracy: valAccuracy)
}
self.delegate?.getMagneticFieldFromDeviceMotion!(valX, y: valY, z: valZ)
}
} else {
NSLog("Device Motion is not available")
}
当我尝试在(IPad 2)中运行我的应用程序时,它返回x,y,z值,但它以疯狂的方式变化并且非常快!如果我在x轴上移动磁场也会改变! 我使用的是钕磁铁,当我用它时不小心它会损坏我的设备。
问题: