没有找到如何使用Swift在线触发磁传感器的任何示例,所以我在这里发布了一个示例,因为我自己创建了一个。
这是在iPhone 6上测试的。
答案 0 :(得分:0)
这是我写的一个简单的触发器类。它看起来运作得很好。监听磁铁数据。
用法:
let magnetListener = VRMagnetSensor()
magnetListener.callback = { type in
// will print MAGNETIC SENSOR REPORTED onPress
print("MAGNETIC SENSOR REPORTED \(type)")
}
班级 - VRMagnetSensor.swift
import Foundation
import CoreMotion
public class VRMagnetSensor {
let manager = CMMotionManager()
var previousMagnetData = ( x:0.0, y:0.0, z:0.0 )
var callback:((type:String) ->())?
init() {
if manager.magnetometerAvailable && !manager.magnetometerActive {
let sensorInterval = NSTimeInterval(0.5)
manager.magnetometerUpdateInterval = sensorInterval
manager.startMagnetometerUpdatesToQueue(NSOperationQueue.mainQueue(), withHandler: {
(data, error) in
let field = data!.magneticField
print("MAGNETIC DATA x \(field.x) y \(field.y) z \(field.z)")
if(field.x < self.previousMagnetData.x-30 && self.previousMagnetData.x != -0.0) {
dispatch_async(dispatch_get_main_queue()) {
self.callback!(type:"onPress")
}
}
self.previousMagnetData = ( x:field.x, y:field.y, z:field.z )
})
}
}
}