Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. General talk
  3. Qt 6
  4. Access to my camera not granted.
Forum Updated to NodeBB v4.3 + New Features

Access to my camera not granted.

Scheduled Pinned Locked Moved Solved Qt 6
4 Posts 2 Posters 1.2k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • W Offline
    W Offline
    Wunian
    wrote on last edited by
    #1

    Hello,
    My environment is below,
    Mac mini, MacOS M1 64bit, Sonoma 14.5
    XCode: 15.2

    The required usage description in my Info.plist is below,
    <key>NSPhotoLibraryUsageDescription</key> <!-- added this for photo library permission -->
    <string>Need library access to upload images</string>
    <key>NSCameraUsageDescription</key> <!-- added this for camera permission -->
    <string>Need camera access to take pictures</string>
    <key>NSMicrophoneUsageDescription</key> <!-- added this for microphone permission -->
    <string>Multimedia Example</string>

    I use QCamera and QVideoSink for video streaming capturing,
    if I use Qt 6.5.3, my application works fine;
    but if I use Qt 6.6.3 and Qt 6.7.1, my application can not work with my camera due to the following message,
    qt.permissions: Could not find permission plugin for QCameraPermission. Please make sure you have included the required usage description in your Info.plist.
    Access to camera not granted.

    May I know if I misunderstand something?

    Thanks.
    Have a nice day.

    1 Reply Last reply
    0
    • W Offline
      W Offline
      Wunian
      wrote on last edited by
      #4

      Hello,
      Here I answer this question by myself, hope my answer can help someone who also meets this issue.

      1. Set QMAKE_INFO_PLIST in your pro file.
        Please refer https://doc.qt.io/qt-6/ios-platform-notes.html#info-plist-with-qmake

      2. Make one function to check camera permission.
        For example,
        void MainWindow::checkCameraPermission(void)
        { // please refer https://code.qt.io/cgit/qt/qtmultimedia.git/tree/examples/multimedia/camera?h=6.7
        #if QT_CONFIG(permissions)

        QCameraPermission cameraPermission;
        switch (qApp->checkPermission(cameraPermission)) {
        case Qt::PermissionStatus::Undetermined:
        qApp->requestPermission(cameraPermission, this, &MainWindow::checkCameraPermission);
        return;
        case Qt::PermissionStatus::Denied:
        std::cout << "Camera permission is not granted!" << std::endl;
        return;
        case Qt::PermissionStatus::Granted:
        std::cout << "Camera permission is granted!" << std::endl;
        break;
        }

      #endif
      }

      1. Make one function to check camera permission status.
        For example,
        void MainWindow::checkAuthorizationStatus(void)
        {
        #if QT_CONFIG(permissions)

        QCameraPermission cameraPermission;
        Qt::PermissionStatus auth_status = Qt::PermissionStatus::Undetermined;
        while(true)
        {
        QThread::msleep(1);
        auth_status = qApp->checkPermission(cameraPermission);

         if(auth_status == Qt::PermissionStatus::Undetermined)
             continue;
        
         break;
        

        }

      #endif // if QT_CONFIG
      }

      1. Before searching your camera, call the following functions,
        checkCameraPermission();
        checkAuthorizationStatus();

      At my side, this issue had been solved.

      Thanks.
      Have a nice day.

      1 Reply Last reply
      0
      • JoeCFDJ Offline
        JoeCFDJ Offline
        JoeCFD
        wrote on last edited by
        #2

        https://forum.qt.io/topic/152364/issue-with-camerapermission-requests-on-ios-with-qt-6-6-1/5

        W 1 Reply Last reply
        0
        • JoeCFDJ JoeCFD

          https://forum.qt.io/topic/152364/issue-with-camerapermission-requests-on-ios-with-qt-6-6-1/5

          W Offline
          W Offline
          Wunian
          wrote on last edited by
          #3

          @JoeCFD
          Thanks for your information.
          I use qmake for my Qt project.
          May I know if this issue can be solved?

          Thanks.
          Have a nice day.

          1 Reply Last reply
          0
          • W Offline
            W Offline
            Wunian
            wrote on last edited by
            #4

            Hello,
            Here I answer this question by myself, hope my answer can help someone who also meets this issue.

            1. Set QMAKE_INFO_PLIST in your pro file.
              Please refer https://doc.qt.io/qt-6/ios-platform-notes.html#info-plist-with-qmake

            2. Make one function to check camera permission.
              For example,
              void MainWindow::checkCameraPermission(void)
              { // please refer https://code.qt.io/cgit/qt/qtmultimedia.git/tree/examples/multimedia/camera?h=6.7
              #if QT_CONFIG(permissions)

              QCameraPermission cameraPermission;
              switch (qApp->checkPermission(cameraPermission)) {
              case Qt::PermissionStatus::Undetermined:
              qApp->requestPermission(cameraPermission, this, &MainWindow::checkCameraPermission);
              return;
              case Qt::PermissionStatus::Denied:
              std::cout << "Camera permission is not granted!" << std::endl;
              return;
              case Qt::PermissionStatus::Granted:
              std::cout << "Camera permission is granted!" << std::endl;
              break;
              }

            #endif
            }

            1. Make one function to check camera permission status.
              For example,
              void MainWindow::checkAuthorizationStatus(void)
              {
              #if QT_CONFIG(permissions)

              QCameraPermission cameraPermission;
              Qt::PermissionStatus auth_status = Qt::PermissionStatus::Undetermined;
              while(true)
              {
              QThread::msleep(1);
              auth_status = qApp->checkPermission(cameraPermission);

               if(auth_status == Qt::PermissionStatus::Undetermined)
                   continue;
              
               break;
              

              }

            #endif // if QT_CONFIG
            }

            1. Before searching your camera, call the following functions,
              checkCameraPermission();
              checkAuthorizationStatus();

            At my side, this issue had been solved.

            Thanks.
            Have a nice day.

            1 Reply Last reply
            0
            • W Wunian has marked this topic as solved on

            • Login

            • Login or register to search.
            • First post
              Last post
            0
            • Categories
            • Recent
            • Tags
            • Popular
            • Users
            • Groups
            • Search
            • Get Qt Extensions
            • Unsolved