- class QBluetoothServer#
使用RFCOMM或L2cap协议与蓝牙设备通信的
QBluetoothServer类。更多…摘要#
方法#
def
__init__()def
close()def
error()定义
listen()定义
serverPort()定义
serverType()
信号#
注意
本文档可能包含从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
操作系统请求权限,但用户未授权。
构造带有
parent和serverType的蓝牙服务器。- close()#
关闭并重置监听套接字。任何已经建立的
QBluetoothSocket继续运行,必须单独进行closed操作。返回
QBluetoothServer的最后错误。当发生错误时,会发出此信号。
- hasPendingConnections()#
- 返回类型:
bool
如果存在挂起连接,则返回 true,否则返回 false。
- isListening()#
- 返回类型:
bool
如果服务器正在侦听传入连接,则返回 true,否则返回 false。
- listen([address=QBluetoothAddress()[, port=0]])#
- 参数:
address –
QBluetoothAddressport – int
- 返回类型:
bool
在
address以port监听传入连接。address必须是本地蓝牙适配器地址,且port必须大于零,且未被另一个蓝牙服务器对象占用。建议不要设置端口号,以便系统自动选择端口号。如果操作成功并且服务器正在监听传入连接,则返回
true,否则返回false。如果服务器对象已经正在监听传入连接,则此函数始终返回
false。在调用此函数之前应调用close()。- listen(uuid[, serviceName=""])
- 参数:
uuid –
QBluetoothUuidserviceName – 字符串
- 返回类型:
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
这是一个便利函数,用于使用
uuid和serviceName注册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指针。删除指针的责任在于调用者。返回蓝牙安全标志。
另请参阅
- serverAddress()#
- 返回类型:
返回服务器地址。
- serverPort()#
- 返回类型:
int
返回服务器端口号。
返回
QBluetoothServer的类型。- setMaxPendingConnections(numConnections)#
- 参数:
numConnections – int
将挂起连接的最大数设置为
numConnections。如果挂起的套接字数量超过此限制,则会拒绝新的套接字。另请参阅
将蓝牙安全标志设置为
security。在调用listen()之前必须调用此函数。当使用蓝牙2.1设备时,蓝牙链接将始终加密,因为加密是强制性的。Android仅支持两种安全级别(安全和非安全)。如果此标志设置为
NoSecurity,则服务器对象将不采用任何认证或加密。其他任何安全标志组合都将触发安全蓝牙连接。在macOS上,不支持安全标志,将被忽略。
另请参阅