PySide6.QtCore.QBluetoothPermission

class QBluetoothPermission

访问蓝牙外围设备。更多

在6.5版本中添加。

概要

方法

注意

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

详细描述

需求

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

平台

类型

苹果

使用描述

NSBluetoothAlwaysUsageDescription

Android

uses-permission :ref:` <应用权限>`

直到 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

请参阅各个使用声明类型,了解如何将它们添加到您的项目中。

注意

自 Qt 6.8.1 起,如果 API 等级 >= 31,则不再请求 ACCESS_FINE_LOCATION 权限。这可能会限制一些蓝牙扫描结果。需要这些结果的用户需要单独请求位置权限(参见precise location),并确保BLUETOOTH_SCAN权限没有设置android:usesPermissionFlags="neverForLocation"属性。有关在应用程序清单中设置和自定义权限的详细信息,请参阅本指南

另请参阅

QPermission requestPermission() checkPermission() 应用程序权限

class CommunicationMode

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

常量

描述

QBluetoothPermission.Access

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

QBluetoothPermission.Advertise

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

QBluetoothPermission.Default

默认使用此配置。

注意

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

在版本6.6中添加。

__init__()
__init__(other)
Parameters:

其他QBluetoothPermission

communicationModes()
Return type:

CommunicationMode 的组合

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

setCommunicationModes(modes)
Parameters:

modesCommunicationMode 的组合

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

注意

默认构造的CommunicationModes实例没有意义,因此尝试设置这种模式将会引发qWarning()并回退到使用Default模式。

另请参阅

communicationModes()

swap(other)
Parameters:

其他QBluetoothPermission