Accelerometer Service
Streams raw accelerometer readings (m/s^2) including gravity. Reports physical sensor data without post-processing.
**Platform Support:** Android, iOS, Web. (Web ignores requested sampling intervals).
**Inherits:** Service
Properties
enabled: bool (default: True) - Whether the sensor should be sampled. Disable to stop streaming.interval: Duration | None (default: Duration(milliseconds=200)) - Desired sampling interval. Mobile platforms treat this as a suggestion.cancel_on_error: bool (default: True) - Whether the stream subscription should cancel on the first sensor error.Events
on_reading: EventHandler[AccelerometerReadingEvent] | None (default: None) - Fires when a new reading is available. Event exposes x, y, z acceleration values and timestamp (microseconds since epoch).on_error: EventHandler[SensorErrorEvent] | None (default: None) - Fired when the platform reports a sensor error. event.message contains the error text.Example
import flet as ftdef main(page: ft.Page):
def handle_reading(e: ft.AccelerometerReadingEvent):
reading.value = f"x={e.x:.2f} m/s^2, y={e.y:.2f} m/s^2, z={e.z:.2f} m/s^2"
page.update()
def handle_error(e: ft.SensorErrorEvent):
page.add(ft.Text(f"Accelerometer error: {e.message}"))
page.services.append(
ft.Accelerometer(
on_reading=handle_reading,
on_error=handle_error,
interval=ft.Duration(milliseconds=100),
cancel_on_error=False,
)
)
page.add(
ft.Text("Move your device to see accelerometer readings."),
reading := ft.Text("Waiting for data..."),
)
ft.run(main)