BleConnection

Encapsulates a BLE connection to a BleDevice.

Inheritors

Properties

Link copied to clipboard
abstract val connectionState: StateFlow<BleConnectionState>

A flow of BleConnectionState changes. StateFlow semantics ensure the latest state is always observable and distinct-equals deduplication avoids spurious re-emissions.

Link copied to clipboard
abstract val device: BleDevice?

The currently connected BleDevice, or null if not connected.

Link copied to clipboard
abstract val deviceFlow: StateFlow<BleDevice?>

A flow of the current device. StateFlow semantics: replays the latest value to new collectors and conflates rapid updates.

Functions

Link copied to clipboard
abstract suspend fun connect(device: BleDevice)

Connects to the given BleDevice.

Link copied to clipboard
abstract suspend fun connectAndAwait(device: BleDevice, timeout: Duration): BleConnectionState

Connects to the given BleDevice and waits for a terminal state or timeout.

Link copied to clipboard
abstract suspend fun disconnect()

Disconnects from the current device.

Link copied to clipboard
abstract fun maximumWriteValueLength(writeType: BleWriteType): Int?

Returns the maximum write value length for the given write type, or null if unknown.

Link copied to clipboard
abstract suspend fun <T> profile(serviceUuid: Uuid, timeout: Duration = 30.seconds, setup: suspend CoroutineScope.(BleService) -> T): T

Executes a block within a discovered profile.

Link copied to clipboard

Asks the platform to switch to a high-throughput / low-latency BLE connection priority for the duration of the connection. Used by latency-sensitive flows like firmware updates. Returns true if the request was issued. Default implementation returns false for platforms that don't support it.