BlueZ D-Bus Profile API description


Profile Manager hierarchy

Service org.bluez Interface org.bluez.ProfileManager1 Object path /org/bluez

    void RegisterProfile(object profile, string uuid, dict options)

        This registers a profile implementation.

        If an application disconnects from the bus all
        its registered profiles will be removed.

        Some predefined services:

        HFP AG UUID: 0000111f-0000-1000-8000-00805f9b34fb

            Default profile Version is 1.7, profile Features
            is 0b001001 and RFCOMM channel is 13.
            Authentication is required.

        HFP HS UUID: 0000111e-0000-1000-8000-00805f9b34fb

            Default profile Version is 1.7, profile Features
            is 0b000000 and RFCOMM channel is 7.
            Authentication is required.

        HSP AG UUID: 00001112-0000-1000-8000-00805f9b34fb

            Default profile Version is 1.2, RFCOMM channel
            is 12 and Authentication is required. Does not
            support any Features, option is ignored.

        HSP HS UUID: 00001108-0000-1000-8000-00805f9b34fb

            Default profile Version is 1.2, profile Features
            is 0b0 and RFCOMM channel is 6. Authentication
            is required. Features is one bit value, specify
            capability of Remote Audio Volume Control
            (by default turned off).

        Available options:

            string Name

                Human readable name for the profile

            string Service

                The primary service class UUID
                (if different from the actual
                 profile UUID)

            string Role

                For asymmetric profiles that do not
                have UUIDs available to uniquely
                identify each side this
                parameter allows specifying the
                precise local role.

                Possible values: "client", "server"

            uint16 Channel

                RFCOMM channel number that is used
                for client and server UUIDs.

                If applicable it will be used in the
                SDP record as well.

            uint16 PSM

                PSM number that is used for client
                and server UUIDs.

                If applicable it will be used in the
                SDP record as well.

            boolean RequireAuthentication

                Pairing is required before connections
                will be established. No devices will
                be connected if not paired.

            boolean RequireAuthorization

                Request authorization before any
                connection will be established.

            boolean AutoConnect

                In case of a client UUID this will
                force connection of the RFCOMM or
                L2CAP channels when a remote device
                is connected.

            string ServiceRecord

                Provide a manual SDP record.

            uint16 Version

                Profile version (for SDP record)

            uint16 Features

                Profile features (for SDP record)

        Possible errors: org.bluez.Error.InvalidArguments
                         org.bluez.Error.AlreadyExists

    void UnregisterProfile(object profile)

        This unregisters the profile that has been previously
        registered. The object path parameter must match the
        same value that has been used on registration.

        Possible errors: org.bluez.Error.DoesNotExist

Profile hierarchy

Service unique name Interface org.bluez.Profile1 Object path freely definable

Methods void Release() [noreply]

        This method gets called when the service daemon
        unregisters the profile. A profile can use it to do
        cleanup tasks. There is no need to unregister the
        profile, because when this method gets called it has
        already been unregistered.

    void NewConnection(object device, fd, dict fd_properties)

        This method gets called when a new service level
        connection has been made and authorized.

        Common fd_properties:

        uint16 Version      Profile version (optional)
        uint16 Features     Profile features (optional)

        Possible errors: org.bluez.Error.Rejected
                         org.bluez.Error.Canceled

    void RequestDisconnection(object device)

        This method gets called when a profile gets
        disconnected.

        The file descriptor is no longer owned by the service
        daemon and the profile implementation needs to take
        care of cleaning up all connections.

        If multiple file descriptors are indicated via
        NewConnection, it is expected that all of them
        are disconnected before returning from this
        method call.

        Possible errors: org.bluez.Error.Rejected
                         org.bluez.Error.Canceled