Skip to main content

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

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]] = None

Called 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 None when it is unavailable on the current
  • Optional[int] - environment.

get_battery_stateasync

get_battery_state()

Returns current battery state.

is_in_battery_save_modeasync

is_in_battery_save_mode()

Returns True if the device is currently in battery save mode.