class QBluetoothServiceInfo#

QBluetoothServiceInfo 类允许访问蓝牙服务的属性。更多信息

简介#

方法#

注意

此文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译有问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建工单来告诉我们。

详细描述#

QBluetoothServiceInfo提供有关蓝牙设备提供的服务信息。此外,它还可以用来在本地设备上注册新服务。请注意,这种注册只会影响蓝牙SDP条目。任何监听传入连接的服务器(例如一个RFCOMM服务器)必须在调用registerService()之前启动。撤销注册必须按照相反的顺序进行。

QBluetoothServiceInfo在传统意义上不是一个值类型。所有的同一服务信息对象的副本都共享相同的数据,因为它们在更改时不会分离。这确保了两份副本可以(取消)注册同一个蓝牙服务。

在iOS上,无法使用此类,因为平台没有公开可能允许访问QBluetoothServiceInfo相关功能的API。

class AttributeId#

蓝牙服务属性。请参阅蓝牙规范核心规范以获取这些属性的更详细描述。

常数

描述

QBluetoothServiceInfo.ServiceRecordHandle

指定可以从中检索属性的服务记录。

QBluetoothServiceInfo.ServiceClassIds

符合的服务类UUID。最常见的服务类在( ServiceClassUuid)中定义

QBluetoothServiceInfo.ServiceRecordState

当添加、删除或修改任何其他服务属性时更改属性。

QBluetoothServiceInfo.ServiceId

唯一标识服务的UUID。

QBluetoothServiceInfo.ProtocolDescriptorList

服务使用的协议列表。最常见的协议 Uuid 定义在 ProtocolUuid

QBluetoothServiceInfo.BrowseGroupList

服务所在的浏览组列表。

QBluetoothServiceInfo.LanguageBaseAttributeIdList

支持人类可读属性的语种基础属性 ID 列表。

QBluetoothServiceInfo.ServiceInfoTimeToLive

服务记录预期有效且不变的时间(秒)。

QBluetoothServiceInfo.ServiceAvailability

指示服务可用性的值。

QBluetoothServiceInfo.BluetoothProfileDescriptorList

符合的服务配置文件列表。

QBluetoothServiceInfo.DocumentationUrl

指向服务文档的 URL。

QBluetoothServiceInfo.ClientExecutableUrl

指代可用于利用服务的应用程序位置的 URL。

QBluetoothServiceInfo.IconUrl

表示服务的图标位置的 URL。

QBluetoothServiceInfo.AdditionalProtocolDescriptorList

服务使用的一些附加协议。此属性扩展了 ProtocolDescriptorList

QBluetoothServiceInfo.PrimaryLanguageBase

主要语言文本描述符的基准索引。

QBluetoothServiceInfo.ServiceName

主要语言中蓝牙服务的名称。

QBluetoothServiceInfo.ServiceDescription

主要语言中蓝牙服务的描述。

QBluetoothServiceInfo.ServiceProvider

提供主要语言蓝牙服务的公司/实体名称。

注意

在 Windows 上,当创建服务时,ServiceClassIds 和 ProtocolDescriptorList 会自动设置为默认值。手动设置这些属性的值将不起作用,并可能导致该平台出现意外的结果。

class Protocol#

此枚举描述了服务使用的套接字协议。

常数

描述

QBluetoothServiceInfo.UnknownProtocol

服务使用了一个未知的套接字协议。

QBluetoothServiceInfo.L2capProtocol

服务使用 L2CAP 套接字协议。此协议在 Android 上的直接套接字连接不受支持。

QBluetoothServiceInfo.RfcommProtocol

服务使用 RFCOMM 套接字协议。

__init__(other)#
参数:

otherQBluetoothServiceInfo

构建一个新的 QBluetoothServiceInfo,它是对 other 的复制。

两个副本继续共享相同的基本数据,写入时不会分离。

__init__()

构建一个新的无效的 QBluetoothServiceInfo ;

attribute(attributeId)#
参数:

attributeId – int

返回类型:

对象

返回属性 attributeId 的值。

另请参阅

setAttribute()

attributes()#
返回类型:

quint16 列表

返回一个包含 QBluetoothServiceInfo 对象所有属性 ID 的列表。

contains(attributeId)#
参数:

attributeId – int

返回类型:

布尔值

如果 QBluetoothServiceInfo 对象包含属性 attributeId,则返回 true,否则返回 false。

device()#
返回类型:

QBluetoothDeviceInfo

返回提供该服务的蓝牙设备的地址。

另请参阅

setDevice()

isComplete()#
返回类型:

布尔值

如果 QBluetoothServiceInfo 对象被认为是完整的,则返回 true,否则返回 false。

一个完整的 QBluetoothServiceInfo 对象包含一个 ProtocolDescriptorList 属性。

isRegistered()#
返回类型:

布尔值

如果服务信息已在平台的 Service Discovery Protocol(SDP)实现中注册,则返回 true,否则返回 false。

isValid()#
返回类型:

布尔值

如果 QBluetoothServiceInfo 对象是有效的,则返回 true,否则返回 false。

一个无效的 QBluetoothServiceInfo 对象将没有任何属性。

protocolDescriptor(protocol)#
参数:

protocolProtocolUuid

返回类型:

序列

以协议的 protocol 为参数返回协议参数作为 Sequence

如果 protocol 不受支持,则返回一个空的 Sequence

protocolServiceMultiplexer()#
返回类型:

整型

这是一个便捷函数。对于支持L2CAP协议的服务,返回协议/服务多路复用器;否则返回-1。

此函数等同于从由attributeProtocolDescriptorList)返回的Sequence中提取信息。

registerService([localAdapter=QBluetoothAddress()])#
参数:

localAdapterQBluetoothAddress

返回类型:

布尔值

将此服务注册到平台的发现协议(SDP)实现,以便其他设备在执行服务发现时找到它。如果服务成功注册,则返回true;否则返回false。一旦注册,记录的更改将无法进行。必须注销此服务并重新注册以进行更改。

localAdapter参数确定应在哪个本地蓝牙适配器下注册此服务。如果localAdapternull,则使用默认蓝牙适配器。如果此服务信息对象已通过本地适配器注册,并且此函数使用不同的本地适配器调用,则将删除以前的注册,并使用新适配器重新注册服务。

removeAttribute(attributeId)#
参数:

attributeId – int

QBluetoothServiceInfo对象中移除属性attributeId

如果服务信息已经注册到平台SDP数据库,则不会更新数据库条目,直到再次调用registerService()

serverChannel()#
返回类型:

整型

这是一个便捷函数。对于支持RFCOMM协议的服务,返回服务器通道;否则返回-1。

此函数等同于从由attribute返回的Sequence中提取信息(QBluetootherServiceInfo::ProtocolDescriptorList)。

serviceAvailability()#
返回类型:

整型

这是一个便利函数。它等价于调用 ServiceAvailability )。toUInt().

返回服务的可用性。

serviceClassUuids()#
返回类型:

QBluetoothUuid 列表

返回一个描述此服务遵循的服务类 UUID 列表。

这是一个便利函数。它等价于调用 attribute( ServiceClassIds ),然后迭代其 QBluetoothUuid 项目。

另请参阅

attribute()

serviceDescription()#
返回类型:

字符串

这是一个便利函数。它等价于调用 attribute( ServiceDescription )。toString().

返回主语言的service说明。

serviceName()#
返回类型:

字符串

这是一个便利函数。它等价于调用 ServiceName )。toString().

返回主语言的服务名称。

serviceProvider()#
返回类型:

字符串

这是一个便利函数。它等价于调用 attribute( ServiceProvider )。toString().

返回主语言的服务提供者。

serviceUuid()#
返回类型:

QBluetoothUuid

这是一个便利函数。它相当于调用 attribute( ServiceId ).value< QBluetoothUuid >().

返回服务的自定义UUID。该UUID可能为空。基于蓝牙SIG标准的UUID应通过serviceClassUuids() 获取。

setAttribute(attributeId, value)#
参数:
  • attributeId – int

  • valueAlternative

这是一个便利函数。

将标识为 attributeId 的属性设置为 value

如果服务信息已经与平台的SDP数据库注册,则不会更新数据库条目,直到再次调用 registerService()

setAttribute(attributeId, value)
参数:
  • attributeId – int

  • valueSequence

这是一个便利函数。

将标识为 attributeId 的属性设置为 value

如果服务信息已经与平台的SDP数据库注册,则不会更新数据库条目,直到再次调用 registerService()

setAttribute(attributeId, value)
参数:

这是一个便利函数。

将标识为 attributeId 的属性设置为 value

如果服务信息已经与平台的SDP数据库注册,则不会更新数据库条目,直到再次调用 registerService()

setAttribute(attributeId, value)
参数:
  • attributeId – int

  • value – 对象

将标识为 attributeId 的属性设置为 value

如果服务信息已经与平台的SDP数据库注册,则不会更新数据库条目,直到再次调用 registerService()

注意

如果属性期望一个字节数据值(例如,蓝牙HID服务),则应将其设置为 QByteArray。

setDevice(info)#
参数:

infoQBluetoothDeviceInfo

将提供此服务的蓝牙设备设置为 device

另请参阅

device()

setServiceAvailability(availability)#
参数:

availability – int

这是一个便捷函数。它等效于调用 setAttribute (ServiceAvailability , availability)。

将服务的可用性设置为 availability

setServiceDescription(description)#
参数:

description – str

这是一个便捷函数。它等效于调用 setAttribute (ServiceDescription , description)。

将服务描述设置为 description,以主要语言显示。

setServiceName(name)#
参数:

name – str

这是一个便捷函数。它等效于调用 setAttribute (ServiceName , name)。

将服务名称设置为 name,以主要语言显示。

setServiceProvider(provider)#
参数:

provider – 字符串

这是一个便利函数。它相当于调用 setAttribute ( ServiceProvider , provider)。

在主要语言中将服务提供商设置为 provider

setServiceUuid(uuid)#
参数:

uuidQBluetoothUuid

这是一个便利函数。它相当于调用 setAttribute ( ServiceId , uuid)。

将自定义服务 UUID 设置为 uuid。此函数不应用于设置标准化服务 UUID。

socketProtocol()#
返回类型:

协议

返回 QBluetoothServiceInfo 对象使用的协议。

unregisterService()#
返回类型:

布尔值

在平台的 Service Discovery Protocol (SDP) 实现中注销此服务。之后,服务将无法通过服务发现被其他设备找到。

如果服务成功注销,则返回 true,否则返回 false。