QBluetoothPermission Class

Access Bluetooth peripherals. More...

Header: #include <QPermissions>

Public Types

enum CommunicationMode { Access, Advertise, Default }
flags CommunicationModes

Public Functions

CommunicationModes communicationModes() const
void setCommunicationModes(CommunicationModes modes)

Detailed Description

Requirements

To request this permission at runtime, the following platform specific usage declarations have to be made at build time:

PlatformType
AppleUsage descriptionNSBluetoothAlwaysUsageDescription
Androiduses-permissionUp to Android 11 (API Level < 31):
  • android.permission.BLUETOOTH
  • android.permission.ACCESS_FINE_LOCATION

Starting from Android 12 (API Level >= 31):

  • android.permission.BLUETOOTH_ADVERTISE
  • android.permission.BLUETOOTH_CONNECT
  • android.permission.BLUETOOTH_SCAN
  • android.permission.ACCESS_FINE_LOCATION

Please see the individual usage declaration types for how to add them to your project.

Note: Currently on Android the android.permission.ACCESS_FINE_LOCATION permission is requested together with Bluetooth permissions. This is required for Bluetooth to work properly, unless the application provides a strong assertion in the application manifest that it does not use Bluetooth to derive a physical location. This permission coupling may change in future.

\inmoduleQtCore \ingroup permissions \since 6.5

See also QPermission, QCoreApplication::requestPermission(), QCoreApplication::checkPermission(), and Application Permissions.

Member Type Documentation

enum QBluetoothPermission::CommunicationMode
flags QBluetoothPermission::CommunicationModes

\since6.6

This enum is used to control the allowed Bluetooth communication modes.

ConstantValueDescription
QBluetoothPermission::Access0x01Allow this device to access other Bluetooth devices. This includes scanning for nearby devices and connecting to them.
QBluetoothPermission::Advertise0x02Allow other Bluetooth devices to discover this device.
QBluetoothPermission::DefaultAccess | AdvertiseThis configuration is used by default.

Note: The fine-grained permissions are currently supported only on Android 12 and newer. On older Android versions, as well as on Apple operating systems, any mode results in full Bluetooth access.

Note: For now the Access mode on Android also requests the precise location permission. This permission coupling may change in the future.

The CommunicationModes type is a typedef for QFlags<CommunicationMode>. It stores an OR combination of CommunicationMode values.

Member Function Documentation

CommunicationModes QBluetoothPermission::communicationModes() const

\since6.6

Returns the allowed Bluetooth communication modes.

See also setCommunicationModes().

void QBluetoothPermission::setCommunicationModes(CommunicationModes modes)

\since6.6

Sets the allowed Bluetooth communication modes to modes.

Note: A default-constructed instance of CommunicationModes has no sense, so an attempt to set such a mode will raise a qWarning() and fall back to using the Default mode.

See also communicationModes().