summaryrefslogtreecommitdiffstats
path: root/examples/multimedia/video/qmlvideo/main.cpp
diff options
context:
space:
mode:
authorAssam Boudjelthia <assam.boudjelthia@qt.io>2020-02-22 00:52:17 +0200
committerAssam Boudjelthia <assam.boudjelthia@qt.io>2020-02-27 12:41:19 +0200
commit3dc663c06955790120c9ca3748cb2caad87cad73 (patch)
tree1dcfa6ed65a8a52662c9ee9fd37dd7e3570653a0 /examples/multimedia/video/qmlvideo/main.cpp
parent70f5eb4f707ce84cbf153899d33d6bd8656be682 (diff)
Examples: request Android storage permissions when using QStandardPaths
Some examples uses QStandardPaths, on Android permissions might need to be explicitly requested to read/write to those paths. Task-number: QTBUG-80717 Change-Id: Ifb52e1c13ed99dcc82fb79a305b64e538596db7c Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Diffstat (limited to 'examples/multimedia/video/qmlvideo/main.cpp')
-rw-r--r--examples/multimedia/video/qmlvideo/main.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/examples/multimedia/video/qmlvideo/main.cpp b/examples/multimedia/video/qmlvideo/main.cpp
index e288c0ae4..01178acaa 100644
--- a/examples/multimedia/video/qmlvideo/main.cpp
+++ b/examples/multimedia/video/qmlvideo/main.cpp
@@ -62,6 +62,23 @@
#include "performancemonitordeclarative.h"
#endif
+#ifdef REQUEST_PERMISSIONS_ON_ANDROID
+#include <QtAndroid>
+
+bool requestStoragePermission() {
+ using namespace QtAndroid;
+
+ QString permission = QStringLiteral("android.permission.WRITE_EXTERNAL_STORAGE");
+ const QHash<QString, PermissionResult> results = requestPermissionsSync(QStringList({permission}));
+ if (!results.contains(permission) || results[permission] == PermissionResult::Denied) {
+ qWarning() << "Couldn't get permission: " << permission;
+ return false;
+ }
+
+ return true;
+}
+#endif
+
static const QString DefaultFileName1 = "";
static const QString DefaultFileName2 = "";
@@ -72,6 +89,10 @@ int main(int argc, char *argv[])
#ifdef PERFORMANCEMONITOR_SUPPORT
PerformanceMonitor::qmlRegisterTypes();
#endif
+#ifdef REQUEST_PERMISSIONS_ON_ANDROID
+ if (!requestStoragePermission())
+ return -1;
+#endif
QString source1, source2;
qreal volume = 0.5;