Battery
Provides access to device battery information and state changes.
Inherits: Service
Events
on_state_change- Called when battery state changes (charging, discharging, full, unknown).
Methods
get_battery_level- Gets the current battery level as a percentage, in the range0to100.get_battery_state- Returns current battery state.is_in_battery_save_mode- ReturnsTrueif the device is currently in battery save mode.
Examples
import flet as ft
async def main(page: ft.Page):
page.vertical_alignment = ft.MainAxisAlignment.CENTER
page.horizontal_alignment = ft.CrossAxisAlignment.CENTER
async def refresh_info(e: ft.Event[ft.Button] = None):
level = await battery.get_battery_level()
state = await battery.get_battery_state()
save_mode = await battery.is_in_battery_save_mode()
info.value = (
f"Battery level: {level}% \n"
f"Battery state: {state.name} \n"
f"Battery saver: {'ON' if save_mode else 'OFF'}"
)
async def on_state_change(e: ft.BatteryStateChangeEvent):
print(f"State changed: {e.state}")
await refresh_info()
battery = ft.Battery(on_state_change=on_state_change)
page.services.append(battery) # need to keep a reference to the service
page.add(
ft.SafeArea(
content=ft.Column(
horizontal_alignment=ft.CrossAxisAlignment.CENTER,
controls=[
info := ft.Text(),
ft.Button("Refresh battery info", on_click=refresh_info),
],
)
)
)
await refresh_info()
if __name__ == "__main__":
ft.run(main)
Events
on_state_changeclass-attributeinstance-attribute
on_state_change: Optional[EventHandler[BatteryStateChangeEvent]] = NoneCalled when battery state changes (charging, discharging, full, unknown).
Methods
get_battery_levelasync
get_battery_level()Gets the current battery level as a percentage, in the range 0 to 100.
Returns:
- Optional[int] - The battery level, or
Nonewhen it is unavailable on the current - Optional[int] - environment.
is_in_battery_save_modeasync
is_in_battery_save_mode()Returns True if the device is currently in battery save mode.