8#include <QtCore/qcoreapplication.h>
9#include <QtCore/qpermissions.h>
10#include <QtCore/private/qandroidextras_p.h>
20 int end = list.size() - 1;
21 int pivot = begin + (end - begin) / 2;
22 int v = list.at(pivot);
24 while (end - begin > 1) {
33 pivot = begin + (end - begin) / 2;
37 return value - v >= list.at(pivot + 1) - value ? pivot + 1 : pivot;
42 return s1.width() * s1.height() < s2.width() * s2.height();
48 case AndroidCamera::NV21:
49 return QVideoFrameFormat::Format_NV21;
50 case AndroidCamera::YV12:
51 return QVideoFrameFormat::Format_YV12;
52 case AndroidCamera::YUY2:
53 return QVideoFrameFormat::Format_YUYV;
54 case AndroidCamera::JPEG:
55 return QVideoFrameFormat::Format_Jpeg;
57 return QVideoFrameFormat::Format_Invalid;
64 case QVideoFrameFormat::Format_NV21:
65 return AndroidCamera::NV21;
66 case QVideoFrameFormat::Format_YV12:
67 return AndroidCamera::YV12;
68 case QVideoFrameFormat::Format_YUYV:
69 return AndroidCamera::YUY2;
70 case QVideoFrameFormat::Format_Jpeg:
71 return AndroidCamera::JPEG;
73 return AndroidCamera::UnknownImageFormat;
79 if (QNativeInterface::QAndroidApplication::sdkVersion() < 23)
83 if (QtAndroidPrivate::checkPermission(permission).result() == QtAndroidPrivate::Authorized)
86 if (QtAndroidPrivate::requestPermission(permission).result() != QtAndroidPrivate::Authorized)
94 return qApp->checkPermission(permission) == Qt::PermissionStatus::Granted;
99 const QCameraPermission permission;
100 const auto granted = androidCheckPermission(permission);
102 qCDebug(qtAndroidMediaPlugin,
"Camera permission not granted!");
108 const QMicrophonePermission permission;
109 const auto granted = androidCheckPermission(permission);
111 qCDebug(qtAndroidMediaPlugin,
"Microphone permission not granted!");
117 if (!androidRequestPermission(QStringLiteral(
"android.permission.WRITE_EXTERNAL_STORAGE"))) {
118 qCDebug(qtAndroidMediaPlugin,
"Storage permission denied by user!");