Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-116834

New needed Android permissions for Android SDK33

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P2: Important
    • None
    • 6.5.0 FF, 6.6.0 FF
    • Extras: Android
    • None
    • Android
    • Next, 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

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              qtandroidteam Qt Android Team
              mikewhite Michael Heiser
              Votes:
              4 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes