PySide6.QtBluetooth.QBluetoothServer

class QBluetoothServer

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

PySide6.QtBluetooth.QBluetoothServer 的继承图

概要

方法

信号

注意

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

详细描述

QBluetoothServer 用于通过RFCOMM或L2cap实现蓝牙服务。

开始使用listen()监听传入的连接。等待直到建立新连接时发出newConnection()信号,并调用nextPendingConnection()以获取新连接的QBluetoothSocket

为了使其他设备能够找到您的服务,创建一个具有适用于您服务的属性的QBluetoothServiceInfo,并使用registerService()注册它。调用serverPort()以获取正在使用的通道号。

如果平台不支持Protocollisten()将返回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])
Parameters:

使用parentserverType构建一个蓝牙服务器。

close()

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

error()
Return type:

错误

返回QBluetoothServer的最后一个错误。

errorOccurred(error)
Parameters:

错误Error

当发生error时,会发出此信号。

另请参阅

error() Error

hasPendingConnections()
Return type:

布尔

如果连接处于挂起状态,则返回 true,否则返回 false。

isListening()
Return type:

布尔

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

listen([address=QBluetoothAddress()[, port=0]])
Parameters:
Return type:

布尔

开始监听address上的port的传入连接。address必须是本地蓝牙适配器地址,port必须大于零且未被其他蓝牙服务器对象占用。建议避免设置端口号,以便系统自动选择端口。

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

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

listen(uuid[, serviceName=""])
Parameters:
Return type:

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()
Return type:

整数

返回待处理连接的最大数量。

newConnection()

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

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

nextPendingConnection()
Return type:

QBluetoothSocket

返回指向下一个待处理连接的QBluetoothSocket的指针。调用者有责任删除该指针。

securityFlags()
Return type:

Security的组合

返回蓝牙安全标志。

另请参阅

setSecurityFlags()

serverAddress()
Return type:

QBluetoothAddress

返回服务器地址。

serverPort()
Return type:

整数

返回服务器端口号。

serverType()
Return type:

协议

返回QBluetoothServer的类型。

setMaxPendingConnections(numConnections)
Parameters:

numConnections – int

设置待处理连接的最大数量为numConnections。如果待处理的套接字数量超过此限制,新的套接字将被拒绝。

setSecurityFlags(security)
Parameters:

安全性Security 的组合

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

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

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

另请参阅

securityFlags()