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 ft

    def 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)