Skip to content

Battery

Provides access to device battery information and state changes.

Inherits: Service

Events

Methods

Examples#

import flet as ft


async def main(page: ft.Page):
    battery = ft.Battery()
    page.services.append(battery)  # need to keep a reference to the service

    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} | "
            f"Battery saver: {'on' if save_mode else 'off'}"
        )

    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)

Events#

on_state_change class-attribute instance-attribute #

on_state_change: (
    EventHandler[BatteryStateChangeEvent] | None
) = None

Called when battery state changes (charging, discharging, full, unknown).

Methods#

get_battery_level async #

get_battery_level() -> int

Returns current battery level as a percentage 0..100.

get_battery_state async #

get_battery_state() -> BatteryState

Returns current battery state.

is_in_battery_save_mode async #

is_in_battery_save_mode() -> bool

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