snapshot of https://github.com/flutter/samples.git (main, 2026-09-16; blobs > 131072B omitted)
Some checks failed
Main Branch CI / Test Flutter beta on ubuntu-latest (push) Has been skipped
Main Branch CI / Test Flutter stable on ubuntu-latest (push) Has been skipped
Main Branch CI / Test Flutter beta on macos-latest (push) Has been cancelled
Main Branch CI / Test Flutter stable on macos-latest (push) Has been cancelled
Some checks failed
Main Branch CI / Test Flutter beta on ubuntu-latest (push) Has been skipped
Main Branch CI / Test Flutter stable on ubuntu-latest (push) Has been skipped
Main Branch CI / Test Flutter beta on macos-latest (push) Has been cancelled
Main Branch CI / Test Flutter stable on macos-latest (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
// Copyright 2020 The Flutter team. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
import CoreMotion
|
||||
|
||||
class AccelerometerStreamHandler: NSObject, FlutterStreamHandler {
|
||||
|
||||
var motionManager: CMMotionManager;
|
||||
|
||||
override init() {
|
||||
motionManager = CMMotionManager()
|
||||
}
|
||||
|
||||
func onListen(withArguments arguments: Any?, eventSink events: @escaping FlutterEventSink) -> FlutterError? {
|
||||
|
||||
if !motionManager.isAccelerometerAvailable {
|
||||
events(FlutterError(code: "SENSOR_UNAVAILABLE", message: "Accelerometer is not available", details: nil))
|
||||
}
|
||||
|
||||
motionManager.accelerometerUpdateInterval = 0.1
|
||||
|
||||
motionManager.startAccelerometerUpdates(to: OperationQueue.main) {(data, error) in
|
||||
guard let accelerationData = data?.acceleration else {
|
||||
events(FlutterError(code: "DATA_UNAVAILABLE", message: "Cannot get accelerometer data", details: nil ))
|
||||
return
|
||||
}
|
||||
|
||||
events([accelerationData.x, accelerationData.y, accelerationData.z])
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func onCancel(withArguments arguments: Any?) -> FlutterError? {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user