class QBluetoothLocalDevice#

QBluetoothLocalDevice 类允许访问本地蓝牙设备。更多…

Inheritance diagram of PySide6.QtBluetooth.QBluetoothLocalDevice

摘要

方法

信号#

静态函数#

注意

此文档可能包含从 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上,无法将主机模式()

注意

至少在Android 12上,设备的蓝牙可见性设置可能会决定设置HostDiscoverable或HostConnectable的结果。例如,如果可见性设置为“关闭”,则可能无法进入HostDiscoverable模式,但将使用HostConnectable。这可能在未来的Android版本中发生变化。

class Error链接到此处

此枚举描述了可能返回的错误。

常量

描述

QBluetoothLocalDevice.NoError

没有已知的错误

QBluetoothLocalDevice.PairingError

配对出错

QBluetoothLocalDevice.MissingPermissionsError

操作系统请求用户未授予的权限。

QBluetoothLocalDevice.UnknownError

未知错误

__init__(address[, parent=None])链接到此处
参数::

address 构造新的 QBluetoothLocalDevice。如果 address) 默认构造,结果为选定的本地默认设备。

注意

从 Android 12(API 级别 31)开始,此类的构造需要 蓝牙运行时权限BLUETOOTH_SCANBLUETOOTH_CONNECT)。如果未授予该权限,设备将无效。

另请参阅

isValid()

__init__([parent=None])
参数::

父类QObject

使用 parent 构造一个 QBluetoothLocalDevice

注意

从 Android 12(API 级别 31)开始,此类的构造需要 蓝牙运行时权限BLUETOOTH_SCANBLUETOOTH_CONNECT)。如果未授予该权限,设备将无效。

另请参阅

isValid()

address()#
返回类型:

QBluetoothAddress

返回该蓝牙设备的 MAC 地址。

注意

从 Android 6.0 开始,在 Android 上,此函数始终返回表示本地地址的常量值 02:00:00:00:00:00。设备本地 MAC 地址的程序性访问已被删除。

static allDevices()#
返回类型:

. QBluetoothHostInfo 列表

返回所有可用本地蓝牙设备的列表。在 macOS 上,只有一个“默认”本地设备。

connectedDevices()#
返回类型:

. QBluetoothAddress 列表

返回连接设备列表。此列表与当前配对设备列表不同。

在 Android 和 macOS 上,无法检索连接设备列表。只能监听(断开)连接变化。为了方便,此类从其实例化开始监控所有连接和断开事件,并在调用此函数时返回当前列表。因此,此函数可能在创建实例后立即返回空列表。

deviceConnected(address)#
参数::

addressQBluetoothAddress

当本地设备通过 address 与远程设备建立连接时,这个信号会被发射。

deviceDisconnected(address)#
参数::

addressQBluetoothAddress

当本地设备与具有 address 的远程蓝牙设备断开连接时,会发出此信号。

errorOccurred(error)#
参数::

errorError

如果在配对过程中发生异常的 error,则会发出此信号。

hostMode()#
返回类型:

HostMode

返回当前本地蓝牙设备的主机模式。在 macOS 上,可以是 HostPoweredOffHostConnectable

另请参阅

setHostMode()

hostModeStateChanged(state)#
参数::

stateHostMode

主机模式已从不同的 HostMode 过渡。

isValid()#
返回类型:

bool

如果 QBluetoothLocalDevice 表示一个可用的本地蓝牙设备,则返回 true;否则返回 false。

如果使用该类的一个实例表示的本地蓝牙适配器从系统中移除(例如,移除底层的蓝牙适配器),则此实例将变为无效。即使相同的蓝牙适配器返回到系统中,已无效的 QBluetoothLocalDevice 实例也保持无效。

注意

从 Android 12(API 级别 31)开始,此类的构造需要 蓝牙运行时权限BLUETOOTH_SCANBLUETOOTH_CONNECT)。如果未授予该权限,设备将无效。

另请参阅

allDevices()

name()#
返回类型:

str

返回用户分配给此蓝牙设备的名称。

pairingFinished(address, pairing)#
参数::

配对或取消配对已完成,地址为address。当前配对状态处于pairing。如果配对请求未成功,则不会发出此信号。如果配对请求失败,将发出errorOccurred()信号。该信号仅在之前通过调用当前对象实例的requestPairing()请求配对的情况下发出。

pairingStatus(address)#
参数::

addressQBluetoothAddress

返回类型:

配对

返回address当前蓝牙配对状态,如果未配对、已配对或已配对并授权。

powerOn()#

将设备返回hostMode()状态后,如果它已关闭,则为设备开启电源。

注意

由于支持的平台上的安全策略不同,此方法在不同平台上可能有不同的行为。例如,系统可能要求用户在开启或关闭蓝牙之前确认。在macOS上无法开启或关闭蓝牙。请参阅特定平台上的蓝牙文档以获取详细信息。

requestPairing(address, pairing)#
参数::

通过address设置pairing状态。结果由信号pairingFinished()返回。

在Android和macOS上,AuthorizedPaired是不可行的,其行为将与Paired相同。在Windows上,确切的配对方式决策由操作系统决定。

在macOS上,无法解除设备的配对。如果请求解除配对,虽然设备仍然配对,但会立即发出pairingFinished()信号。可以请求为先前未配对的设备进行配对。此外,AuthorizedPairedPaired有相同的属性。

注意:创建配对可能需要数分钟,并可能需要用户确认。

setHostMode(mode)#
参数::

modeHostMode

将本地蓝牙设备的宿主模式设置为mode

某些转换,例如打开或关闭设备,可能需要一些时间。因此,后续调用应在hostModeStateChanged()信号完成上一个请求后进行。如果忽略这一点,一系列调用结果可能未定义。

注意

由于支持平台上的安全策略各不相同,此方法在各种平台上的行为可能不同。例如,在打开或关闭蓝牙之前,系统可能需要用户确认,并且可能不支持所有宿主模式。在macOS上,无法通过脚本更改hostMode()。用户只能通过系统偏好设置切换蓝牙的开启或关闭。在Windows上,必须从UI线程调用此方法,因为它可能需要用户确认。有关详细信息,请参阅特定平台的蓝牙文档。

另请参阅

hostMode()