Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
6.5.0 FF, 6.6.0 FF
-
None
-
-
2023wk38FOQtforAndroid
Description
With Android SDK 33 needed for playstore READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE are deprecated!!
https://developer.android.com/about/versions/13/behavior-changes-13#granular-media-permissions
You have to use android.permission.READ_MEDIA_IMAGES if you want to read photos from gallery for example.
My current permissions in my AndroidManifest.xml:
<!-- Dangerous permissions --> <uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/> <!--uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="29"/-> <!-- %%INSERT_PERMISSIONS -->
And corresponding checkPermissions method:
#ifdef Q_OS_ANDROID #include <QCoreApplication> #include <QtCore/private/qandroidextras_p.h> #endif #ifdef Q_OS_ANDROID bool checkPermission() { QList<bool> permissions; auto r = QtAndroidPrivate::checkPermission("android.permission.READ_EXTERNAL_STORAGE").result(); if (r != QtAndroidPrivate::Authorized) { r = QtAndroidPrivate::requestPermission("android.permission.READ_EXTERNAL_STORAGE").result(); if (r == QtAndroidPrivate::Denied) permissions.append(false); } r = QtAndroidPrivate::checkPermission("android.permission.WRITE_EXTERNAL_STORAGE").result(); if (r != QtAndroidPrivate::Authorized) { r = QtAndroidPrivate::requestPermission("android.permission.WRITE_EXTERNAL_STORAGE").result(); if (r == QtAndroidPrivate::Denied) permissions.append(false); } r = QtAndroidPrivate::checkPermission("android.permission.READ_MEDIA_IMAGES").result(); if (r != QtAndroidPrivate::Authorized) { r = QtAndroidPrivate::requestPermission("android.permission.READ_MEDIA_IMAGES").result(); if (r == QtAndroidPrivate::Denied) permissions.append(false); } return (permissions.count() != 3); } #endif
Attachments
Issue Links
- relates to
-
QTBUG-103564 Android 13: New permissions
- Open