Battery Service

Provides access to device battery information and state changes.

Inherits: Service

Events

  • on_state_change: EventHandler that accepts BatteryStateChangeEvent. Called when battery state changes (charging, discharging, full, unknown).
  • Methods

  • get_battery_level(): async method returning int (0-100) representing the current battery level.
  • get_battery_state(): async method returning BatteryState representing the current battery state.
  • is_in_battery_save_mode(): async method returning bool, True if the device is in battery save mode.
  • Example Usage

    import flet as ft

    async def main(page: ft.Page): battery = ft.Battery() page.services.append(battery) # Keep a reference

    info = ft.Text() state_text = ft.Text()

    async def refresh_info(_=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"Level: {level}% | State: {state} | Battery saver: {'on' if save_mode else 'off'}" await page.update_async()

    async def on_state_change(e: ft.BatteryStateChangeEvent): state_text.value = f"State changed: {e.state}" await refresh_info()

    battery.on_state_change = on_state_change await refresh_info()

    page.add( ft.Column([ info, ft.Row([ ft.Button("Refresh battery info", on_click=refresh_info) ]), state_text, ]) )

    ft.run(main)