- 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 –
QBluetoothAddress
port – int
- 返回类型:
bool
在
address
以port
监听传入连接。address
必须是本地蓝牙适配器地址,且port
必须大于零,且未被另一个蓝牙服务器对象占用。建议不要设置端口号,以便系统自动选择端口号。如果操作成功并且服务器正在监听传入连接,则返回
true
,否则返回false
。如果服务器对象已经正在监听传入连接,则此函数始终返回
false
。在调用此函数之前应调用close()
。- listen(uuid[, serviceName=""])
- 参数:
uuid –
QBluetoothUuid
serviceName – 字符串
- 返回类型:
警告
本节包含从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上,不支持安全标志,将被忽略。
另请参阅