QBluetoothServiceInfo Class
The QBluetoothServiceInfo class enables access to the attributes of a Bluetooth service. More...
Header: | #include <QBluetoothServiceInfo> |
qmake: | QT += bluetooth |
Since: | Qt 5.2 |
Public Types
class | Alternative |
class | Sequence |
enum | AttributeId { ServiceRecordHandle, ServiceClassIds, ServiceRecordState, ServiceId, ..., ServiceProvider } |
enum | Protocol { UnknownProtocol, L2capProtocol, RfcommProtocol } |
Public Functions
QBluetoothServiceInfo() | |
QBluetoothServiceInfo(const QBluetoothServiceInfo &other) | |
~QBluetoothServiceInfo() | |
QVariant | attribute(quint16 attributeId) const |
QList<quint16> | attributes() const |
bool | contains(quint16 attributeId) const |
QBluetoothDeviceInfo | device() const |
bool | isComplete() const |
bool | isRegistered() const |
bool | isValid() const |
QBluetoothServiceInfo::Sequence | protocolDescriptor(QBluetoothUuid::ProtocolUuid protocol) const |
int | protocolServiceMultiplexer() const |
bool | registerService(const QBluetoothAddress &localAdapter = QBluetoothAddress()) |
void | removeAttribute(quint16 attributeId) |
int | serverChannel() const |
quint8 | serviceAvailability() const |
QList<QBluetoothUuid> | serviceClassUuids() const |
QString | serviceDescription() const |
QString | serviceName() const |
QString | serviceProvider() const |
QBluetoothUuid | serviceUuid() const |
void | setAttribute(quint16 attributeId, const QVariant &value) |
void | setAttribute(quint16 attributeId, const QBluetoothUuid &value) |
void | setAttribute(quint16 attributeId, const QBluetoothServiceInfo::Sequence &value) |
void | setAttribute(quint16 attributeId, const QBluetoothServiceInfo::Alternative &value) |
void | setDevice(const QBluetoothDeviceInfo &device) |
void | setServiceAvailability(quint8 availability) |
void | setServiceDescription(const QString &description) |
void | setServiceName(const QString &name) |
void | setServiceProvider(const QString &provider) |
void | setServiceUuid(const QBluetoothUuid &uuid) |
QBluetoothServiceInfo::Protocol | socketProtocol() const |
bool | unregisterService() |
QBluetoothServiceInfo & | operator=(const QBluetoothServiceInfo &other) |
Protected Variables
QSharedPointer<QBluetoothServiceInfoPrivate> | d_ptr |
Detailed Description
The QBluetoothServiceInfo class enables access to the attributes of a Bluetooth service.
QBluetoothServiceInfo provides information about a service offered by a Bluetooth device. In addition it can be used to register new services on the local device. Note that such a registration only affects the Bluetooth SDP entries. Any server listening for incoming connections (e.g an RFCOMM server) must be started before registerService() is called. Deregistration must happen in the reverse order.
QBluetoothServiceInfo is not a value type in the traditional sense. All copies of the same service info object share the same data as they do not detach upon changing them. This ensures that two copies can (de)register the same Bluetooth service.
On iOS, this class cannot be used because the platform does not expose an API which may permit access to QBluetoothServiceInfo related features.
Member Type Documentation
enum QBluetoothServiceInfo::AttributeId
Bluetooth service attributes. Please check the Bluetooth Core Specification for a more detailed description of these attributes.
Constant | Value | Description |
---|---|---|
QBluetoothServiceInfo::ServiceRecordHandle | 0x0000 | Specifies a service record from which attributes can be retrieved. |
QBluetoothServiceInfo::ServiceClassIds | 0x0001 | UUIDs of service classes that the service conforms to. The most common service classes are defined in (QBluetoothUuid::ServiceClassUuid) |
QBluetoothServiceInfo::ServiceRecordState | 0x0002 | Attibute changes when any other service attribute is added, deleted or modified. |
QBluetoothServiceInfo::ServiceId | 0x0003 | UUID that uniquely identifies the service. |
QBluetoothServiceInfo::ProtocolDescriptorList | 0x0004 | List of protocols used by the service. The most common protocol Uuids are defined in QBluetoothUuid::ProtocolUuid |
QBluetoothServiceInfo::BrowseGroupList | 0x0005 | List of browse groups the service is in. |
QBluetoothServiceInfo::LanguageBaseAttributeIdList | 0x0006 | List of language base attribute IDs to support human-readable attributes. |
QBluetoothServiceInfo::ServiceInfoTimeToLive | 0x0007 | Number of seconds for which the service record is expected to remain valid and unchanged. |
QBluetoothServiceInfo::ServiceAvailability | 0x0008 | Value indicating the availability of the service. |
QBluetoothServiceInfo::BluetoothProfileDescriptorList | 0x0009 | List of profiles to which the service conforms. |
QBluetoothServiceInfo::DocumentationUrl | 0x000A | URL that points to the documentation on the service.. |
QBluetoothServiceInfo::ClientExecutableUrl | 0x000B | URL that refers to the location of an application that can be used to utilize the service. |
QBluetoothServiceInfo::IconUrl | 0x000C | URL to the location of the icon representing the service. |
QBluetoothServiceInfo::AdditionalProtocolDescriptorList | 0x000D | Additional protocols used by the service. This attribute extends ProtocolDescriptorList . |
QBluetoothServiceInfo::PrimaryLanguageBase | 0x0100 | Base index for primary language text descriptors. |
QBluetoothServiceInfo::ServiceName | PrimaryLanguageBase + 0x0000 | Name of the Bluetooth service in the primary language. |
QBluetoothServiceInfo::ServiceDescription | PrimaryLanguageBase + 0x0001 | Description of the Bluetooth service in the primary language. |
QBluetoothServiceInfo::ServiceProvider | PrimaryLanguageBase + 0x0002 | Name of the company / entity that provides the Bluetooth service primary language. |
Note: On Windows ServiceClassIds and ProtocolDescriptorList are automatically set to default values when a service is created. Manually setting values for these attributes will not work and might lead to unexpected results on this platform.
enum QBluetoothServiceInfo::Protocol
This enum describes the socket protocol used by the service.
Constant | Value | Description |
---|---|---|
QBluetoothServiceInfo::UnknownProtocol | 0 | The service uses an unknown socket protocol. |
QBluetoothServiceInfo::L2capProtocol | 1 | The service uses the L2CAP socket protocol. This protocol is not supported for direct socket connections on Android. |
QBluetoothServiceInfo::RfcommProtocol | 2 | The service uses the RFCOMM socket protocol. |
Member Function Documentation
QBluetoothServiceInfo::QBluetoothServiceInfo()
Construct a new invalid QBluetoothServiceInfo;
QBluetoothServiceInfo::QBluetoothServiceInfo(const QBluetoothServiceInfo &other)
Construct a new QBluetoothServiceInfo that is a copy of other.
The two copies continue to share the same underlying data which does not detach upon write.
QBluetoothServiceInfo::~QBluetoothServiceInfo()
Destroys the QBluetoothServiceInfo object.
QVariant QBluetoothServiceInfo::attribute(quint16 attributeId) const
Returns the value of the attribute attributeId.
See also setAttribute().
QList<quint16> QBluetoothServiceInfo::attributes() const
Returns a list of all attribute ids that the QBluetoothServiceInfo object has.
bool QBluetoothServiceInfo::contains(quint16 attributeId) const
Returns true if the QBluetoothServiceInfo object contains the attribute attributeId, otherwise returns false.
QBluetoothDeviceInfo QBluetoothServiceInfo::device() const
Returns the address of the Bluetooth device that provides this service.
See also setDevice().
bool QBluetoothServiceInfo::isComplete() const
Returns true if the QBluetoothServiceInfo object is considered complete, otherwise returns false.
A complete QBluetoothServiceInfo object contains a ProtocolDescriptorList attribute.
bool QBluetoothServiceInfo::isRegistered() const
bool QBluetoothServiceInfo::isValid() const
Returns true if the QBluetoothServiceInfo object is valid, otherwise returns false.
An invalid QBluetoothServiceInfo object will have no attributes.
QBluetoothServiceInfo::Sequence QBluetoothServiceInfo::protocolDescriptor(QBluetoothUuid::ProtocolUuid protocol) const
Returns the protocol parameters as a QBluetoothServiceInfo::Sequence for protocol protocol.
An empty QBluetoothServiceInfo::Sequence is returned if protocol is not supported.
int QBluetoothServiceInfo::protocolServiceMultiplexer() const
This is a convenience function. Returns the protocol/service multiplexer for services which support the L2CAP protocol, otherwise returns -1.
This function is equivalent to extracting the information from QBluetoothServiceInfo::Sequence returned by QBluetoothServiceInfo::attribute(QBluetoothServiceInfo::ProtocolDescriptorList).
bool QBluetoothServiceInfo::registerService(const QBluetoothAddress &localAdapter = QBluetoothAddress())
void QBluetoothServiceInfo::removeAttribute(quint16 attributeId)
Removes the attribute attributeId from the QBluetoothServiceInfo object.
If the service information is already registered with the platforms SDP database, the database entry will not be updated until registerService() was called again.
int QBluetoothServiceInfo::serverChannel() const
This is a convenience function. Returns the server channel for services which support the RFCOMM protocol, otherwise returns -1.
This function is equivalent to extracting the information from QBluetoothServiceInfo::Sequence returned by QBluetoothServiceInfo::attribute(QBluetootherServiceInfo::ProtocolDescriptorList).
quint8 QBluetoothServiceInfo::serviceAvailability() const
See also setServiceAvailability().
QList<QBluetoothUuid> QBluetoothServiceInfo::serviceClassUuids() const
Returns a list of UUIDs describing the service classes that this service conforms to.
This is a convenience function. It is equivalent to calling attribute(QBluetoothServiceInfo::ServiceClassIds).value<QBluetoothServiceInfo::Sequence>() and subsequently iterating over its QBluetoothUuid entries.
See also attribute().
QString QBluetoothServiceInfo::serviceDescription() const
See also setServiceDescription().
QString QBluetoothServiceInfo::serviceName() const
See also setServiceName().
QString QBluetoothServiceInfo::serviceProvider() const
See also setServiceProvider().
QBluetoothUuid QBluetoothServiceInfo::serviceUuid() const
See also setServiceUuid().
void QBluetoothServiceInfo::setAttribute(quint16 attributeId, const QVariant &value)
Sets the attribute identified by attributeId to value.
If the service information is already registered with the platform's SDP database, the database entry will not be updated until registerService() was called again.
See also attribute(), isRegistered(), and registerService().
void QBluetoothServiceInfo::setAttribute(quint16 attributeId, const QBluetoothUuid &value)
void QBluetoothServiceInfo::setAttribute(quint16 attributeId, const QBluetoothServiceInfo::Sequence &value)
void QBluetoothServiceInfo::setAttribute(quint16 attributeId, const QBluetoothServiceInfo::Alternative &value)
void QBluetoothServiceInfo::setDevice(const QBluetoothDeviceInfo &device)
Sets the Bluetooth device that provides this service to device.
See also device().
void QBluetoothServiceInfo::setServiceAvailability(quint8 availability)
See also serviceAvailability().
void QBluetoothServiceInfo::setServiceDescription(const QString &description)
See also serviceDescription().
void QBluetoothServiceInfo::setServiceName(const QString &name)
See also serviceName().
void QBluetoothServiceInfo::setServiceProvider(const QString &provider)
See also serviceProvider().
void QBluetoothServiceInfo::setServiceUuid(const QBluetoothUuid &uuid)
See also serviceUuid().
QBluetoothServiceInfo::Protocol QBluetoothServiceInfo::socketProtocol() const
Returns the protocol that the QBluetoothServiceInfo object uses.
bool QBluetoothServiceInfo::unregisterService()
QBluetoothServiceInfo &QBluetoothServiceInfo::operator=(const QBluetoothServiceInfo &other)
Makes a copy of the other and assigns it to this QBluetoothServiceInfo object. The two copies continue to share the same service and registration details.