Details
-
Bug
-
Resolution: Fixed
-
P2: Important
-
6.7.3
-
-
5
-
cba3c3004 (6.8), 0df76339f (6.8), e6aa48dc2 (6.8), e28adc19e (6.8), c55b14f03 (6.8), 785e56f62 (6.8), 3b5499c93 (6.8), 057c405bd (dev)
-
Foundation Sprint 118, Foundation Sprint 119
Description
It is said that "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":
https://doc.qt.io/qt-6.7/qbluetoothpermission.html#requirements
But my reproducer cannot properly get Bluetooth permission granted unless I have android.permission.ACCESS_FINE_LOCATION in my manifest. A strong assertion of
android:usesPermissionFlags="neverForLocation"
does not help.
In detail, my manifest defines permissions like:
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permission android:name="android.permission.BLUETOOTH_SCAN" android:usesPermissionFlags="neverForLocation"/> <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" /> <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
Deploy as it is and click button to request permission - it fails anyway even though you "allow". You need to add
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
to make it work.
Built with Android platform SDK 34 and tried both Android 14 and 15 devices.
Attachments
Issue Links
- duplicates
-
QTBUG-117358 BLUETOOTH_SCAN permission flag neverForLocation
- Closed