src.bluetooth_sig.advertising.service_resolver

Resolve advertised service UUIDs to GATT service classes.

Maps advertised service UUIDs (from AD types 0x02-0x07) to GATT service classes. This bridges advertising discovery with GATT service discovery, allowing callers to pre-plan which characteristics to read after connecting.

Based on Bluetooth SIG Core Specification Supplement for advertising data AD Type categories.

Classes

Name

Description

AdvertisingServiceResolver

Resolves advertised service UUIDs to GATT service classes.

ResolvedService

Information about a resolved advertised service.

Module Contents

class src.bluetooth_sig.advertising.service_resolver.AdvertisingServiceResolver

Resolves advertised service UUIDs to GATT service classes.

Maps service UUIDs advertised in BLE advertisements to their corresponding GATT service classes from the registry.

Example

resolver = AdvertisingServiceResolver()

# Resolve a single UUID resolved = resolver.resolve(BluetoothUUID(“0000180f-0000-1000-8000-00805f9b34fb”)) if resolved.service_class:

print(f”Found service: {resolved.name}”)

# Resolve multiple UUIDs from advertisement service_uuids = [

BluetoothUUID(“0000180f-0000-1000-8000-00805f9b34fb”), # Battery Service BluetoothUUID(“0000180d-0000-1000-8000-00805f9b34fb”), # Heart Rate Service

] resolved_services = resolver.resolve_all(service_uuids)

get_known_services(uuids: list[bluetooth_sig.types.uuid.BluetoothUUID] | list[str]) list[ResolvedService]

Get only the services that have known GATT service classes.

Filters out unknown services from the result.

Parameters:

uuids – List of service UUIDs to check.

Returns:

List of ResolvedService objects for known services only.

get_sig_services(uuids: list[bluetooth_sig.types.uuid.BluetoothUUID] | list[str]) list[ResolvedService]

Get only the SIG-defined services from the list.

Filters to return only services with SIG-assigned 16-bit UUIDs.

Parameters:

uuids – List of service UUIDs to check.

Returns:

List of ResolvedService objects for SIG-defined services only.

resolve(uuid: bluetooth_sig.types.uuid.BluetoothUUID | str) ResolvedService

Resolve a single service UUID to its GATT service class.

Parameters:

uuid – The service UUID to resolve.

Returns:

ResolvedService with service class if found, or None if unknown.

resolve_all(uuids: list[bluetooth_sig.types.uuid.BluetoothUUID] | list[str]) list[ResolvedService]

Resolve multiple service UUIDs.

Parameters:

uuids – List of service UUIDs to resolve.

Returns:

List of ResolvedService objects, one per input UUID.

class src.bluetooth_sig.advertising.service_resolver.ResolvedService(uuid: bluetooth_sig.types.uuid.BluetoothUUID, service_class: type[bluetooth_sig.gatt.services.base.BaseGattService] | None, name: str, *, is_sig_defined: bool)

Information about a resolved advertised service.

uuid

The service UUID from the advertisement.

service_class

The GATT service class, or None if not in registry.

name

Human-readable service name.

is_sig_defined

Whether this is a SIG-defined service.

is_sig_defined
name
service_class
uuid