Skip to content

Commit e3fbc8d

Browse files
Zabadamvbuberen
authored andcommitted
Obtain magnetometer events from DeviceMotion rather than raw startMagnetometerUpdates(). This also makes the magnetometer onCancel() method now correct. Added set 'showsDeviceMovementDisplay' to true for magnetometer.
1 parent 13b5c54 commit e3fbc8d

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

Diff for: packages/sensors_plus/sensors_plus/ios/Classes/FPPStreamHandlerPlus.swift

+5-2
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,10 @@ class FPPMagnetometerStreamHandlerPlus: NSObject, MotionStreamHandler {
192192
eventSink sink: @escaping FlutterEventSink
193193
) -> FlutterError? {
194194
_initMotionManager()
195-
_motionManager.startMagnetometerUpdates(to: OperationQueue()) { data, error in
195+
_motionManager.showsDeviceMovementDisplay = true
196+
_motionManager.startDeviceMotionUpdates(
197+
using: CMAttitudeReferenceFrame.xArbitraryCorrectedZVertical, to: OperationQueue()
198+
) { data, error in
196199
if _isCleanUp {
197200
return
198201
}
@@ -204,7 +207,7 @@ class FPPMagnetometerStreamHandlerPlus: NSObject, MotionStreamHandler {
204207
))
205208
return
206209
}
207-
let magneticField = data!.magneticField
210+
let magneticField = data!.magneticField.field
208211
sendTriplet(x: magneticField.x, y: magneticField.y, z: magneticField.z, sink: sink)
209212
}
210213
return nil

0 commit comments

Comments
 (0)