Barometer
Streams barometer readings
(atmospheric pressure in hPa). Useful for altitude calculations
and weather-related experiences.
Note
- Supported platforms: Android, iOS.
- Barometer APIs are not exposed on the web or desktop platforms.
- iOS ignores custom sampling intervals.
Running on iOS
On iOS you must also include a key called NSMotionUsageDescription
in your app's Info.plist file. This key provides a message that tells
the user why the app is requesting access to the device's motion data.
Barometer service needs access to motion data to get barometer data.
For example, add the following to your pyproject.toml file:
[tool.flet.ios.info]
NSMotionUsageDescription = "This app requires access to the barometer to provide altitude information."
Adding NSMotionUsageDescription is a requirement and not doing so will
crash your app when it attempts to access motion data.
Inherits: Service
Properties
-
cancel_on_error(bool) –Whether the stream subscription should cancel on the first sensor error.
-
enabled(bool) –Whether the sensor should be sampled. Disable to stop streaming.
-
interval(Duration | None) –Desired sampling interval provided as a
Duration.
Events
-
on_error(EventHandler[SensorErrorEvent] | None) –Fired when the platform reports a sensor error.
event.messageis the error -
on_reading(EventHandler[BarometerReadingEvent] | None) –Fires when a new reading is available.
Examples#
import flet as ft
def main(page: ft.Page):
intro = ft.Text("Atmospheric pressure (hPa).")
reading = ft.Text("Waiting for data...")
def handle_reading(e: ft.BarometerReadingEvent):
reading.value = f"{e.pressure:.2f} hPa"
page.update()
def handle_error(e: ft.SensorErrorEvent):
page.add(ft.Text(f"Barometer error: {e.message}"))
page.services = [
ft.Barometer(
on_reading=handle_reading,
on_error=handle_error,
interval=ft.Duration(milliseconds=500),
),
]
page.controls = [intro, reading]
ft.run(main)
Properties#
cancel_on_error
class-attribute
instance-attribute
#
cancel_on_error: bool = True
Whether the stream subscription should cancel on the first sensor error.
enabled
class-attribute
instance-attribute
#
enabled: bool = True
Whether the sensor should be sampled. Disable to stop streaming.
interval
class-attribute
instance-attribute
#
interval: Duration | None = None
Desired sampling interval provided as a Duration.
Defaults to 200 ms, though
some platforms (such as iOS) ignore custom sampling intervals.
Events#
on_error
class-attribute
instance-attribute
#
on_error: EventHandler[SensorErrorEvent] | None = None
Fired when the platform reports a sensor error. event.message is the error
description.
on_reading
class-attribute
instance-attribute
#
on_reading: EventHandler[BarometerReadingEvent] | None = (
None
)
Fires when a new reading is available.
event contains pressure (hPa) and timestamp (microseconds
since epoch).