Details
-
Bug
-
Resolution: Invalid
-
P2: Important
-
None
-
5.10.0, 5.9
-
None
Description
The following code gives a permission denied error when trying to open the file, after the checkPermission returns true on the write to external storage flag!
#include <QCoreApplication> #include <QFile> #include <QTextStream> #include <QDebug> #ifdef __ANDROID__ #include <QtAndroid> #endif // Taken from https://bugreports.qt.io/browse/QTBUG-50759 bool check_permission() { QtAndroid::PermissionResult r = QtAndroid::checkPermission("android.permission.WRITE_EXTERNAL_STORAGE"); if(r == QtAndroid::PermissionResult::Denied) { QtAndroid::requestPermissionsSync( QStringList() << android.permission.WRITE_EXTERNAL_STORAGE" ); r = QtAndroid::checkPermission("android.permission.WRITE_EXTERNAL_STORAGE"); if(r == QtAndroid::PermissionResult::Denied) { qDebug() << "Permission denied"; return false; } } qDebug() << "Permissions granted!"; return true; } int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); if (!check_permission()) return -1; QFile f("/storage/extSdCard/WriteTest.txt"); if (!f.open(QIODevice::WriteOnly | QIODevice::Text)) { qDebug() << f.errorString(); return -1; } QTextStream out(&f); out << "This is just a test\n"; return a.exec(); }