diff options
author | Assam Boudjelthia <assam.boudjelthia@qt.io> | 2020-02-23 12:43:12 +0200 |
---|---|---|
committer | Assam Boudjelthia <assam.boudjelthia@qt.io> | 2020-02-26 16:31:36 +0200 |
commit | 49591c453fea8bb7f1f80d815496aa57620add53 (patch) | |
tree | 395b4491572893e0a7e630b827527a0173ff6757 /examples/demos/photosurface/main.cpp | |
parent | ea11d049ab497bbaa78a2cecbc0f028433847058 (diff) |
Demos: request Android storage permissions when using QStandardPaths
http example uses QStandardPaths, on Android permissions might need
to be explicitly requested to write the downloaded file.
Task-number: QTBUG-80717
Change-Id: Id01c0486656a33caac74e2a31a7b7d9c83df28a1
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Diffstat (limited to 'examples/demos/photosurface/main.cpp')
-rw-r--r-- | examples/demos/photosurface/main.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/examples/demos/photosurface/main.cpp b/examples/demos/photosurface/main.cpp index d1522bd09..f4aadfd50 100644 --- a/examples/demos/photosurface/main.cpp +++ b/examples/demos/photosurface/main.cpp @@ -64,6 +64,22 @@ #include <QtCore/QMimeDatabase> #include <QtCore/QStandardPaths> #include <QtCore/QUrl> +#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 QStringList imageNameFilters() { @@ -88,6 +104,10 @@ int main(int argc, char* argv[]) #else QGuiApplication app(argc, argv); #endif +#ifdef REQUEST_PERMISSIONS_ON_ANDROID + if (!requestStoragePermission()) + return -1; +#endif QQuickWindow::setDefaultAlphaBuffer(true); QCoreApplication::setApplicationName(QStringLiteral("Photosurface")); |