class QBluetoothPermission#

访问蓝牙外设。更多

新版本6.5.

概述#

方法#

注意

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

详细描述#

要求#

要请求在运行时请求此权限,必须在构建时做以下平台特定使用声明:

平台

类型

苹果

使用描述

NSBluetoothAlwaysUsageDescription

安卓

uses-permission :ref:` <Application-Permissions>`

截至 Android 11 (API 级别 < 31)

  • android.permission.BLUETOOTH

  • android.permission.ACCESS_FINE_LOCATION

从 Android 12 (API 级别 >= 31) 开始

  • android.permission.BLUETOOTH_ADVERTISE

  • android.permission.BLUETOOTH_CONNECT

  • android.permission.BLUETOOTH_SCAN

  • android.permission.ACCESS_FINE_LOCATION

请参考如何在项目中添加它们的具体使用声明类型。

注意

目前,在 Android 上,请求 android.permission.ACCESS_FINE_LOCATION 许可权限时,会同时请求蓝牙权限。这是蓝牙正常工作的必要条件,除非应用程序在应用程序清单中提供强烈断言,表明它不使用蓝牙来确定物理位置。这种权限耦合可能会在未来改变。

class CommunicationMode#

(继承自 enum.Flag) 此枚举用于控制允许的蓝牙通信模式。

常量

描述

QBluetoothPermission.Access

允许此设备访问其他的蓝牙设备。这包括扫描附近设备和连接到它们。

QBluetoothPermission.Advertise

允许其他蓝牙设备发现此设备。

QBluetoothPermission.Default

这是默认的配置。

注意

目前,细粒度权限仅在 Android 12 及更高版本上受支持。在较老的 Android 版本上以及苹果操作系统上,任何模式都将导致完全的蓝牙访问。

注意

目前,Android 上的 Access 模式也请求 precise location 许可权。这种权限耦合可能会在未来改变。

从版本 6.6 开始。

__init__()#
__init__(other)
参数:

otherQBluetoothPermission

communicationModes()#
返回类型:

CommunicationMode 组合

返回允许的蓝牙通信模式。

setCommunicationModes(modes)#
参数:

模式CommunicationMode的组合

设置允许的蓝牙通信模式为 modes

注意

使用默认构造函数创建的 CommunicationModes 实例没有意义,因此尝试设置此类模式将触发一个 qWarning() 并回退到使用 Default 模式。

swap(other)#
参数:

otherQBluetoothPermission