QBluetoothServiceInfo 类
QBluetoothServiceInfo 类允许访问蓝牙服务属性。 更多信息...
头文件 | #include <QBluetoothServiceInfo> |
qmake | QT += bluetooth |
公共类型
类 | 备选 |
类 | 序列 |
枚举 | AttributeId { ServiceRecordHandle, ServiceClassIds, ServiceRecordState, ServiceId, ProtocolDescriptorList, …, ServiceProvider } |
枚举 | Protocol { UnknownProtocol, L2capProtocol, RfcommProtocol } |
公共函数
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::协议 | socketProtocol() const |
bool | 注销服务() |
QBluetoothServiceInfo & | operator=(const QBluetoothServiceInfo &other) |
详细描述
QBluetoothServiceInfo提供了关于蓝牙设备提供的服务的相关信息。此外,还可以用来在本地设备上注册新服务。请注意,此类注册只会影响蓝牙SDP条目。在调用registerService()之前,必须启动任何监听传入连接的服务器(例如RFCOMM服务器)。注销必须按照相反的顺序发生。
QBluetoothServiceInfo在传统意义上不是一个值类型。相同的服务信息对象的所有副本都共享相同的数据,因为它们在更改时不分离。这确保了两个副本可以(解)注册相同的蓝牙服务。
在iOS上,无法使用此类,因为该平台未公开可能允许访问QBluetoothServiceInfo相关特性的API。
成员类型文档
枚举 QBluetoothServiceInfo::AttributeId
蓝牙服务属性。请查阅蓝牙核心规范以获取这些属性更详细的描述。
常量 | 值 | 描述 |
---|---|---|
QBluetoothServiceInfo::ServiceRecordHandle | 0x0000 | 指定可从中检索属性的服务记录。 |
QBluetoothServiceInfo::ServiceClassIds | 0x0001 | 符合该服务的服务类uuid。最常见的服务类在QBluetoothUuid::ServiceClassUuid中定义。 |
QBluetoothServiceInfo::ServiceRecordState | 0x0002 | 当添加、删除或修改任何其他服务属性时,属性发生变化。 |
QBluetoothServiceInfo::ServiceId | 0x0003 | 唯一识别服务的uuid。 |
QBluetoothServiceInfo::ProtocolDescriptorList | 0x0004 | 服务使用的协议列表。最常见的协议uuid在QBluetoothUuid::ProtocolUuid中定义。 |
QBluetoothServiceInfo::BrowseGroupList | 0x0005 | 服务所在的浏览组列表。 |
QBluetoothServiceInfo::LanguageBaseAttributeIdList | 0x0006 | 支持人类可读属性的语言基础属性ID列表。 |
QBluetoothServiceInfo::ServiceInfoTimeToLive | 0x0007 | 服务记录预期保持有效和不变的时间(秒)。 |
QBluetoothServiceInfo::ServiceAvailability | 0x0008 | 指示服务可用性的值。 |
QBluetoothServiceInfo::BluetoothProfileDescriptorList | 0x0009 | 符合该服务的配置文件列表。 |
QBluetoothServiceInfo::DocumentationUrl | 0x000A | 指向服务文档的URL。 |
QBluetoothServiceInfo::ClientExecutableUrl | 0x000B | 指向可用于利用服务的应用程序位置的URL。 |
QBluetoothServiceInfo::IconUrl | 0x000C | 指向表示服务的图标的URL。 |
QBluetoothServiceInfo::AdditionalProtocolDescriptorList | 0x000D | 服务使用的附加协议。此属性扩展ProtocolDescriptorList 。 |
QBluetoothServiceInfo::PrimaryLanguageBase | 0x0100 | 主要语言文本描述符的基本索引。 |
QBluetoothServiceInfo::ServiceName | PrimaryLanguageBase + 0x0000 | 主要语言中的蓝牙服务名称。 |
QBluetoothServiceInfo::ServiceDescription | PrimaryLanguageBase + 0x0001 | 主要语言中对蓝牙服务的描述。 |
QBluetoothServiceInfo::ServiceProvider | PrimaryLanguageBase + 0x0002 | 提供蓝牙服务主要语言的公司/实体名称。 |
注意:在Windows上,当创建服务时,ServiceClassIds 和 ProtocolDescriptorList 将自动设置为默认值。手动设置这些属性的值将不起作用,并且在平台上可能导致意外结果。
enum QBluetoothServiceInfo::Protocol
此枚举描述了服务使用的套接字协议。
常量 | 值 | 描述 |
---|---|---|
QBluetoothServiceInfo::UnknownProtocol | 0 | 服务使用一个未知的套接字协议。 |
QBluetoothServiceInfo::L2capProtocol | 1 | 服务使用 L2CAP 套接字协议。此协议在 Android 上不支持直接套接字连接。 |
QBluetoothServiceInfo::RfcommProtocol | 2 | 服务使用 RFCOMM 套接字协议。 |
成员函数文档
QBluetoothServiceInfo::QBluetoothServiceInfo()
构造一个新的无效 QBluetoothServiceInfo;
QBluetoothServiceInfo::QBluetoothServiceInfo(const QBluetoothServiceInfo &other)
构造一个新的 QBluetoothServiceInfo,它是 other 的副本。
两个副本继续共享相同的基本数据,不会在写入时分离。
[noexcept]
QBluetoothServiceInfo::~QBluetoothServiceInfo()
QVariant QBluetoothServiceInfo::attribute(quint16 attributeId) const
返回属性 attributeId 的值。
另请参阅:setAttribute().
QList<quint16> QBluetoothServiceInfo::attributes() const
返回 QBluetoothServiceInfo 对象具有的所有属性 ID 的列表。
bool QBluetoothServiceInfo::contains(quint16 attributeId) const
如果 QBluetoothServiceInfo 对象包含属性 attributeId,则返回 true,否则返回 false。
QBluetoothDeviceInfo QBluetoothServiceInfo::device() const
返回提供此服务的蓝牙设备的地址。
另请参阅:setDevice().
bool QBluetoothServiceInfo::isComplete() const
如果 QBluetoothServiceInfo 对象被认为是完整的,则返回 true,否则返回 false。
一个完整的 QBluetoothServiceInfo 对象包含一个 ProtocolDescriptorList 属性。
bool QBluetoothServiceInfo::isRegistered() const
如果服务信息已注册到平台的 Service Discovery Protocol (SDP) 实现,则返回 true,否则返回 false。
bool QBluetoothServiceInfo::isValid() const
如果 QBluetoothServiceInfo 对象是有效的,则返回 true,否则返回 false。
无效的 QBluetoothServiceInfo 对象将没有属性。
QBluetoothServiceInfo::Sequence QBluetoothServiceInfo::protocolDescriptor(QBluetoothUuid::ProtocolUuid protocol) const
返回协议 protocol 的协议参数作为 QBluetoothServiceInfo::Sequence。
如果 protocol 不受支持,将返回一个空的 QBluetoothServiceInfo::Sequence。
int QBluetoothServiceInfo::protocolServiceMultiplexer() const
这是一个方便函数。如果服务支持 L2CAP 协议,则返回协议/服务多路复用器,否则返回 -1。
此函数等同于从 QBluetoothServiceInfo::Sequence 提取信息,该信息由 QBluetoothServiceInfo::attribute(QBluetoothServiceInfo::ProtocolDescriptorList) 返回。
bool QBluetoothServiceInfo::registerService(const QBluetoothAddress &localAdapter = QBluetoothAddress())
将此服务注册到平台的 Service Discovery Protocol (SDP) 实现,使其在执行服务发现时可以被其他设备找到。如果服务成功注册,则返回 true,否则返回 false。一旦注册,就不能再修改记录。必须先注销服务,然后再使用更改重新注册。
localAdapter 参数确定服务应在其中注册的本地蓝牙适配器。如果 localAdapter 为 null
,则使用默认蓝牙适配器。如果此服务信息对象已通过本地适配器注册,并且使用不同本地适配器调用此函数,则将删除以前的注册,并使用新适配器重新注册服务。
void QBluetoothServiceInfo::removeAttribute(quint16 attributeId)
从 QBluetoothServiceInfo 对象中删除属性 attributeId。
如果服务信息已与平台的 SDP 数据库注册,则直到再次调用 registerService() 前,都不会更新数据库条目。
int QBluetoothServiceInfo::serverChannel() const
这是一个方便函数。如果服务支持 RFCOMM 协议,则返回服务器通道,否则返回 -1。
此函数等同于从 QBluetoothServiceInfo::attribute(QBluetootherServiceInfo::ProtocolDescriptorList) 返回的 QBluetoothServiceInfo::Sequence 中提取信息。
quint8 QBluetoothServiceInfo::serviceAvailability() const
这是一个方便函数。它等同于调用 attribute(QBluetoothServiceInfo::ServiceAvailability).toUInt()。
返回服务的可用性。
另请参阅setServiceAvailability() 和 attribute()。
QList<QBluetoothUuid> QBluetoothServiceInfo::serviceClassUuids() const
返回描述服务类 UUID 的列表,该服务等遵从这些服务类。
这是一个便利函数。它等同于调用attribute(QBluetoothServiceInfo::ServiceClassIds)().value(<QBluetoothServiceInfo::Sequence>),然后遍历其QBluetoothUuid条目。
另请参阅 attribute。
QString QBluetoothServiceInfo::serviceDescription() const
这是一个便利函数。它等同于调用attribute(QBluetoothServiceInfo::ServiceDescription)().toString()。
返回主语言的业务描述。
另请参阅 setServiceDescription和attribute。
QString QBluetoothServiceInfo::serviceName() const
这是一个便利函数。它等同于调用attribute(QBluetoothServiceInfo::ServiceName)().toString()。
返回主语言的业务名称。
另请参阅 setServiceName和attribute。
QString QBluetoothServiceInfo::serviceProvider() const
这是一个便利函数。它等同于调用attribute(QBluetoothServiceInfo::ServiceProvider)().toString()。
返回主语言的业务提供商。
另请参阅 setServiceProvider和attribute。
QBluetoothUuid QBluetoothServiceInfo::serviceUuid() const
这是一个便利函数。它等同于调用attribute(QBluetoothServiceInfo::ServiceId)().value(<QBluetoothUuid>())。
返回服务的自定义UUID。此UUID可能为空。基于蓝牙SIG标准的UUID应通过serviceClassUuids()检索。
另请参阅 setServiceUuid和attribute。
void QBluetoothServiceInfo::setAttribute(quint16 attributeId, const QVariant &value)
将attributeId标识的属性设置为value。
如果服务信息已注册到平台的SDP数据库中,则不会更新数据库条目,直到再次调用registerService()。
注意: 如果某个属性期望字节数组值的编码(例如蓝牙HID服务),则应将其设置为QByteArray。
另请参阅 attribute,isRegistered和registerService。
void QBluetoothServiceInfo::setAttribute(quint16 attributeId, const QBluetoothUuid &value)
这是一个便利函数。
将attributeId标识的属性设置为value。
如果服务信息已注册到平台的SDP数据库中,则不会更新数据库条目,直到再次调用registerService()。
void QBluetoothServiceInfo::setAttribute(quint16 attributeId, const QBluetoothServiceInfo::Sequence &value)
这是一个便利函数。
将attributeId标识的属性设置为value。
如果服务信息已注册到平台的SDP数据库中,则不会更新数据库条目,直到再次调用registerService()。
void QBluetoothServiceInfo::setAttribute(quint16 attributeId, const QBluetoothServiceInfo::Alternative &value)
这是一个便利函数。
将attributeId标识的属性设置为value。
如果服务信息已注册到平台的SDP数据库中,则不会更新数据库条目,直到再次调用registerService()。
void QBluetoothServiceInfo::setDevice(const QBluetoothDeviceInfo &device)
将提供此服务的蓝牙设备设置为device。
另请参阅 device()。
void QBluetoothServiceInfo::setServiceAvailability(quint8 availability)
这是一个便利函数。它与调用setAttribute(QBluetoothServiceInfo::ServiceAvailability, availability)等价。
将服务的可用性设置为availability。
另请参阅 serviceAvailability() 和 setAttribute。
void QBluetoothServiceInfo::setServiceDescription(const QString &description)
这是一个便利函数。它与调用setAttribute(QBluetoothServiceInfo::ServiceDescription, description)等价。
将主要语言的-service描述设置为description。
另请参阅 serviceDescription() 和 setAttribute。
void QBluetoothServiceInfo::setServiceName(const QString &name)
这是一个便利函数。它与调用setAttribute(QBluetoothServiceInfo::ServiceName, name)等价。
将主要语言的服务名称设置为name。
另请参阅 serviceName() 和 setAttribute。
void QBluetoothServiceInfo::setServiceProvider(const QString &provider)
这是一个便利函数。它与调用setAttribute(QBluetoothServiceInfo::ServiceProvider, provider)等价。
将主要语言的服务提供者设置为provider。
另请参阅 serviceProvider() 和 setAttribute。
void QBluetoothServiceInfo::setServiceUuid(const QBluetoothUuid &uuid)
这是一个便利函数。它与调用setAttribute(QBluetoothServiceInfo::ServiceId, uuid)等价。
将自定义服务UUID设置为uuid。此函数不应用于设置标准化的服务UUID。
另请参阅 serviceUuid() 和 setAttribute。
QBluetoothServiceInfo::Protocol QBluetoothServiceInfo::socketProtocol() const
返回QBluetoothServiceInfo对象使用的协议。
bool QBluetoothServiceInfo::unregisterService()
此函数将从平台的Service Discovery Protocol (SDP) 实现中注销此服务。之后,服务将无法通过服务发现被其他设备找到。
如果服务成功注销,则返回true,否则返回false。
QBluetoothServiceInfo &QBluetoothServiceInfo::operator=(const QBluetoothServiceInfo &other)
复制other并将其分配给此QBluetoothServiceInfo对象。这两个副本将继续共享相同的服务和注册详细信息。
© 2024 The Qt Company Ltd. 包含在此处的文档贡献是各自所有者的版权。提供的文档受GNU自由文档许可版1.3条款的许可,由自由软件基金会发布。Qt及其相应徽标为芬兰和/或其他地区的The Qt Company Ltd.的商标。所有其他商标均为其各自所有者的财产。