class QBluetoothServer#

使用RFCOMM或L2cap协议与蓝牙设备通信的QBluetoothServer类。更多

Inheritance diagram of PySide6.QtBluetooth.QBluetoothServer

摘要#

方法#

信号#

注意

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

详细说明#

QBluetoothServer用于在RFCOMM或L2cap上实现蓝牙服务。

使用listen()开始监听传入的连接。等待newConnection()信号发出,以表示新连接已建立,然后调用nextPendingConnection()来获取新连接的QBluetoothSocket

要使其他设备能够找到您的服务,创建一个带有适当属性 QBluetoothServiceInfo 的实例,并使用 registerService() 方法进行注册。调用 serverPort() 以获取正在使用的通道号。

如果平台不支持 Protocol,则 listen() 将返回 false。例如,Android 和 WinRT 仅支持 RFCOMM。

在 iOS 上,此类不能使用,因为平台未公开允许访问 QBluetoothServer 相关特性的 API。

class Error#

此枚举描述蓝牙服务器错误类型。

常量

描述

QBluetoothServer.NoError

没有错误。

QBluetoothServer.UnknownError

发生了未知错误。

QBluetoothServer.PoweredOffError

蓝牙适配器已关闭电源。

QBluetoothServer.InputOutputError

发生了输入输出错误。

QBluetoothServer.ServiceAlreadyRegisteredError

服务或端口已注册。

QBluetoothServer.UnsupportedProtocolError

此平台不支持 Protocol

QBluetoothServer.MissingPermissionsError

操作系统请求权限,但用户未授权。

__init__(serverType[, parent=None])#
参数:

构造带有 parentserverType 的蓝牙服务器。

close()#

关闭并重置监听套接字。任何已经建立的QBluetoothSocket 继续运行,必须单独进行 closed 操作。

error()#
返回类型:

错误

返回 QBluetoothServer 的最后错误。

errorOccurred(error)#
参数:

errorError

当发生错误时,会发出此信号。

另请参阅

error() Error

hasPendingConnections()#
返回类型:

bool

如果存在挂起连接,则返回 true,否则返回 false。

isListening()#
返回类型:

bool

如果服务器正在侦听传入连接,则返回 true,否则返回 false。

listen([address=QBluetoothAddress()[, port=0]])#
参数:
返回类型:

bool

addressport 监听传入连接。 address 必须是本地蓝牙适配器地址,且 port 必须大于零,且未被另一个蓝牙服务器对象占用。建议不要设置端口号,以便系统自动选择端口号。

如果操作成功并且服务器正在监听传入连接,则返回 true,否则返回 false

如果服务器对象已经正在监听传入连接,则此函数始终返回 false。在调用此函数之前应调用 close()

listen(uuid[, serviceName=""])
参数:
返回类型:

QBluetoothServiceInfo

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

这是一个便利函数,用于使用uuidserviceName注册SPP服务。因为这个函数已经注册了服务,所以返回的QBluetoothServiceInfo对象将不能再更改。要关闭服务器,需要在服务器对象上调用unregisterService()close()

如果成功,返回已注册的QBluetoothServiceInfo实例;如果失败,返回无效的QBluetoothServiceInfo。此函数始终假设应该使用默认的蓝牙适配器。

如果服务器对象正在监听传入的连接,此函数返回无效的QBluetoothServiceInfo

对于RFCOMM服务器,此函数等价于以下代码片段。

<Code snippet "qbluetoothserver.cpp:listen" not found>
<Code snippet "qbluetoothserver.cpp:listen2" not found>
<Code snippet "qbluetoothserver.cpp:listen3" not found>
maxPendingConnections()#
返回类型:

int

返回挂起的最大连接数。

newConnection()#

当有新连接可用时发出此信号。

连接的槽应调用nextPendingConnection()来获取一个QBluetoothSocket对象,以发送和接收数据。

nextPendingConnection()#
返回类型:

QBluetoothSocket

返回指向下一个挂起的连接的QBluetoothSocket指针。删除指针的责任在于调用者。

securityFlags()#
返回类型:

组合的Security

返回蓝牙安全标志。

serverAddress()#
返回类型:

QBluetoothAddress

返回服务器地址。

serverPort()#
返回类型:

int

返回服务器端口号。

serverType()#
返回类型:

协议

返回QBluetoothServer的类型。

setMaxPendingConnections(numConnections)#
参数:

numConnections – int

将挂起连接的最大数设置为numConnections。如果挂起的套接字数量超过此限制,则会拒绝新的套接字。

setSecurityFlags(security)#
参数:

security – 组合的Security

将蓝牙安全标志设置为security。在调用listen()之前必须调用此函数。当使用蓝牙2.1设备时,蓝牙链接将始终加密,因为加密是强制性的。

Android仅支持两种安全级别(安全和非安全)。如果此标志设置为NoSecurity,则服务器对象将不采用任何认证或加密。其他任何安全标志组合都将触发安全蓝牙连接。

在macOS上,不支持安全标志,将被忽略。

另请参阅

安全标志函数