Examples: 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: Icd377254ad77cac661c5ae37e9081e0463493d8b Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
This commit is contained in:
parent
bf377dd1af
commit
86f7d44089
@ -1,4 +1,8 @@
|
||||
QT += network widgets
|
||||
android: qtHaveModule(androidextras) {
|
||||
QT += androidextras
|
||||
DEFINES += REQUEST_PERMISSIONS_ON_ANDROID
|
||||
}
|
||||
|
||||
HEADERS += httpwindow.h
|
||||
SOURCES += httpwindow.cpp \
|
||||
|
@ -53,11 +53,30 @@
|
||||
#include <QScreen>
|
||||
|
||||
#include "httpwindow.h"
|
||||
#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
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
QApplication app(argc, argv);
|
||||
|
||||
#ifdef REQUEST_PERMISSIONS_ON_ANDROID
|
||||
if (!requestStoragePermission())
|
||||
return -1;
|
||||
#endif
|
||||
HttpWindow httpWin;
|
||||
const QRect availableSize = httpWin.screen()->availableGeometry();
|
||||
httpWin.resize(availableSize.width() / 5, availableSize.height() / 5);
|
||||
|
Loading…
Reference in New Issue
Block a user