QBluetoothPermission Class
Access Bluetooth peripherals. More...
Header: | #include <QPermissions> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
Since: | Qt 6.5 |
Public Types
(since 6.6) enum | CommunicationMode { Access, Advertise, Default } |
flags | CommunicationModes |
Public Functions
(since 6.6) QBluetoothPermission::CommunicationModes | communicationModes() const |
(since 6.6) void | setCommunicationModes(QBluetoothPermission::CommunicationModes modes) |
Detailed Description
Requirements
To request this permission at runtime, the following platform specific usage declarations have to be made at build time:
Platform | Type | |
---|---|---|
Apple | Usage description | NSBluetoothAlwaysUsageDescription |
Android | uses-permission | Up to Android 11 (API Level < 31):
Starting from Android 12 (API Level >= 31):
|
Please see the individual usage declaration types for how to add them to your project.
Note: Since Qt 6.8.1, the ACCESS_FINE_LOCATION permission is no longer requested if API Level >= 31. This may limit some Bluetooth scan results. Users needing these results need to request the location permission separately (see precise location) and ensure that BLUETOOTH_SCAN
permission doesn't have the android:usesPermissionFlags="neverForLocation"
attribute set. For setting and customizing permissions in the application manifest, see this guide.
See also QPermission, QCoreApplication::requestPermission(), QCoreApplication::checkPermission(), and Application Permissions.
Member Type Documentation
[since 6.6]
enum QBluetoothPermission::CommunicationMode
flags QBluetoothPermission::CommunicationModes
This enum is used to control the allowed Bluetooth communication modes.
Constant | Value | Description |
---|---|---|
QBluetoothPermission::Access | 0x01 | Allow this device to access other Bluetooth devices. This includes scanning for nearby devices and connecting to them. |
QBluetoothPermission::Advertise | 0x02 | Allow other Bluetooth devices to discover this device. |
QBluetoothPermission::Default | Access | Advertise | This 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.
This enum was introduced in Qt 6.6.
The CommunicationModes type is a typedef for QFlags<CommunicationMode>. It stores an OR combination of CommunicationMode values.
Member Function Documentation
[since 6.6]
QBluetoothPermission::CommunicationModes QBluetoothPermission::communicationModes() const
Returns the allowed Bluetooth communication modes.
This function was introduced in Qt 6.6.
See also setCommunicationModes().
[since 6.6]
void QBluetoothPermission::setCommunicationModes(QBluetoothPermission::CommunicationModes modes)
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.
This function was introduced in Qt 6.6.
See also communicationModes().