- class QBluetoothLocalDevice#
QBluetoothLocalDevice
类允许访问本地蓝牙设备。更多…摘要
方法
def
__init__()
def
address()
定义
hostMode()
定义
isValid()
定义
name()
定义
powerOn()
信号#
静态函数#
定义
allDevices()
注意
此文档可能包含从 C++ 自动翻译到 Python 的片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译有问题,您也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 上创建票据来告诉我们
详细描述#
QBluetoothLocalDevice
提供获取和设置本地蓝牙设备状态的功能。在 iOS 上,这个类不能使用,因为平台没有公开任何数据或 API,可能提供有关本地蓝牙设备的信息。
- class Pairing#
此枚举描述了两个蓝牙设备之间的配对状态。
常量
描述
QBluetoothLocalDevice.Unpaired
蓝牙设备未配对。
QBluetoothLocalDevice.Paired
蓝牙设备已配对。当远程设备向本地设备发起连接请求时,系统会提示用户进行授权。
QBluetoothLocalDevice.AuthorizedPaired
蓝牙设备已配对。当远程设备向本地设备发起连接请求时,系统不会提示用户进行授权。
- class HostMode链接到此处
此枚举描述了大部分的本地蓝牙设备。
常量
描述
QBluetoothLocalDevice.HostPoweredOff
关闭设备电源
QBluetoothLocalDevice.HostConnectable
如果远程蓝牙设备之前已经与本地设备配对或知道其地址,则可以连接到本地蓝牙设备。如果设备已经关闭,这将启动设备。
QBluetoothLocalDevice.HostDiscoverable
远程蓝牙设备可以发现本地蓝牙设备的存在。设备也将处于可连接和开启状态。在Android上,此模式最多可以活跃5分钟。
QBluetoothLocalDevice.HostDiscoverableLimitedInquiry
当进行限制性查询时,远程蓝牙设备可以检测到本地蓝牙设备的存在。这应该用于定位仅在有限时间内可被发现的服务。这可以加速游戏设备之间的发现,因为在限制性查询模式之外的设备可以跳过服务发现。在此模式下,如果需要,设备将处于可连接和开启状态。此模式在Android上不受支持。
注意
在macOS上,无法将主机模式()
注意
在Windows上,无法将主机模式()
注意
从Android 13(API级别33)开始,HostPoweredOff状态依赖于非公共的Android API,因为公共的一个已经被弃用,请参阅(disable())。这可能在未来的Android版本中发生变化。
注意
至少在Android 12上,设备的蓝牙可见性设置可能会决定设置HostDiscoverable或HostConnectable的结果。例如,如果可见性设置为“关闭”,则可能无法进入HostDiscoverable模式,但将使用HostConnectable。这可能在未来的Android版本中发生变化。
- class Error链接到此处
此枚举描述了可能返回的错误。
常量
描述
QBluetoothLocalDevice.NoError
没有已知的错误
QBluetoothLocalDevice.PairingError
配对出错
QBluetoothLocalDevice.MissingPermissionsError
操作系统请求用户未授予的权限。
QBluetoothLocalDevice.UnknownError
未知错误
- __init__(address[, parent=None])链接到此处
- 参数::
address –
QBluetoothAddress
父类 –
QObject
为
address
构造新的QBluetoothLocalDevice
。如果address)
默认构造,结果为选定的本地默认设备。注意
从 Android 12(API 级别 31)开始,此类的构造需要 蓝牙运行时权限(BLUETOOTH_SCAN 和 BLUETOOTH_CONNECT)。如果未授予该权限,设备将无效。
另请参阅
- __init__([parent=None])
- 参数::
父类 –
QObject
使用
parent
构造一个QBluetoothLocalDevice
。注意
从 Android 12(API 级别 31)开始,此类的构造需要 蓝牙运行时权限(BLUETOOTH_SCAN 和 BLUETOOTH_CONNECT)。如果未授予该权限,设备将无效。
另请参阅
- address()#
- 返回类型:
返回该蓝牙设备的 MAC 地址。
注意
从 Android 6.0 开始,在 Android 上,此函数始终返回表示本地地址的常量值
02:00:00:00:00:00
。设备本地 MAC 地址的程序性访问已被删除。- static allDevices()#
- 返回类型:
. QBluetoothHostInfo 列表
返回所有可用本地蓝牙设备的列表。在 macOS 上,只有一个“默认”本地设备。
- connectedDevices()#
- 返回类型:
. QBluetoothAddress 列表
返回连接设备列表。此列表与当前配对设备列表不同。
在 Android 和 macOS 上,无法检索连接设备列表。只能监听(断开)连接变化。为了方便,此类从其实例化开始监控所有连接和断开事件,并在调用此函数时返回当前列表。因此,此函数可能在创建实例后立即返回空列表。
- deviceConnected(address)#
- 参数::
address –
QBluetoothAddress
当本地设备通过
address
与远程设备建立连接时,这个信号会被发射。- deviceDisconnected(address)#
- 参数::
address –
QBluetoothAddress
当本地设备与具有
address
的远程蓝牙设备断开连接时,会发出此信号。如果在配对过程中发生异常的
error
,则会发出此信号。返回当前本地蓝牙设备的主机模式。在 macOS 上,可以是
HostPoweredOff
或HostConnectable
。另请参阅
主机模式已从不同的
HostMode
过渡。- isValid()#
- 返回类型:
bool
如果
QBluetoothLocalDevice
表示一个可用的本地蓝牙设备,则返回true
;否则返回 false。如果使用该类的一个实例表示的本地蓝牙适配器从系统中移除(例如,移除底层的蓝牙适配器),则此实例将变为无效。即使相同的蓝牙适配器返回到系统中,已无效的
QBluetoothLocalDevice
实例也保持无效。注意
从 Android 12(API 级别 31)开始,此类的构造需要 蓝牙运行时权限(BLUETOOTH_SCAN 和 BLUETOOTH_CONNECT)。如果未授予该权限,设备将无效。
另请参阅
- name()#
- 返回类型:
str
返回用户分配给此蓝牙设备的名称。
- pairingFinished(address, pairing)#
- 参数::
address –
QBluetoothAddress
pairing –
Pairing
配对或取消配对已完成,地址为
address
。当前配对状态处于pairing
。如果配对请求未成功,则不会发出此信号。如果配对请求失败,将发出errorOccurred()
信号。该信号仅在之前通过调用当前对象实例的requestPairing()
请求配对的情况下发出。- pairingStatus(address)#
- 参数::
address –
QBluetoothAddress
- 返回类型:
返回
address
当前蓝牙配对状态,如果未配对、已配对或已配对并授权。- powerOn()#
将设备返回
hostMode()
状态后,如果它已关闭,则为设备开启电源。注意
由于支持的平台上的安全策略不同,此方法在不同平台上可能有不同的行为。例如,系统可能要求用户在开启或关闭蓝牙之前确认。在macOS上无法开启或关闭蓝牙。请参阅特定平台上的蓝牙文档以获取详细信息。
- requestPairing(address, pairing)#
- 参数::
address –
QBluetoothAddress
pairing –
Pairing
通过
address
设置pairing
状态。结果由信号pairingFinished()
返回。在Android和macOS上,
AuthorizedPaired
是不可行的,其行为将与Paired相同。在Windows上,确切的配对方式决策由操作系统决定。在macOS上,无法解除设备的配对。如果请求解除配对,虽然设备仍然配对,但会立即发出
pairingFinished()
信号。可以请求为先前未配对的设备进行配对。此外,AuthorizedPaired
与Paired
有相同的属性。注意:创建配对可能需要数分钟,并可能需要用户确认。
将本地蓝牙设备的宿主模式设置为
mode
。某些转换,例如打开或关闭设备,可能需要一些时间。因此,后续调用应在
hostModeStateChanged()
信号完成上一个请求后进行。如果忽略这一点,一系列调用结果可能未定义。注意
由于支持平台上的安全策略各不相同,此方法在各种平台上的行为可能不同。例如,在打开或关闭蓝牙之前,系统可能需要用户确认,并且可能不支持所有宿主模式。在macOS上,无法通过脚本更改
hostMode()
。用户只能通过系统偏好设置切换蓝牙的开启或关闭。在Windows上,必须从UI线程调用此方法,因为它可能需要用户确认。有关详细信息,请参阅特定平台的蓝牙文档。另请参阅