Михаиллл
Михаиллл28 липня 2019 р. 11:42

Как в Qt сохранить файл в папку загрузок в Android

Добрый день.
Как в Qt сохранить файл в папку загрузок в Android.
В Windows нормально сохраняет.
Пробовал сохранять в эти папки, но не чего не выходит

    downloadFolderAddress = "/storage/emulated/0/Download/";
    downloadFolderAddress = "/storage/sdcard0/download/";
Рекомендуємо хостинг TIMEWEB
Рекомендуємо хостинг TIMEWEB
Стабільний хостинг, на якому розміщується соціальна мережа EVILEG. Для проектів на Django радимо VDS хостинг.

Вам це подобається? Поділіться в соціальних мережах!

8
Михаиллл
  • 28 липня 2019 р. 14:21
  • (відредаговано)

Так нашел папку загрузок, но все равно не могу в нее записать.

QStandardPaths::standardLocations(QStandardPaths::DownloadLocation)

Останавливается работа перед открытие файла после

QFile *file = new QFile(downloadFolderAddress + nameFile);
    Evgenii Legotckoi
    • 29 липня 2019 р. 03:14

    Добрый день!

    Попробуйте так

    QFile file(saveFileName);
    if (!file.open(QIODevice::WriteOnly))
    {
        return;
    }
    
    // Запись в файл
    
    file.close();  
    

    Также, я бы убедился, что вот это возвращает правильный путь к файлу downloadFolderAddress + nameFile

    Вполне возможно, что вам там ещё слеш нужен

    downloadFolderAddress + "/" + nameFile
    
      Михаиллл
      • 29 липня 2019 р. 03:48
      • Відповідь була позначена як рішення.

      Если такое делать, то работает

      bool requestAndroidPermissions(){
      //Request requiered permissions at runtime
      
      const QVector<QString> permissions({
                                          "android.permission.WRITE_EXTERNAL_STORAGE",
                                          "android.permission.READ_EXTERNAL_STORAGE"});
      
      for(const QString &permission : permissions){
          auto result = QtAndroid::checkPermission(permission);
          if(result == QtAndroid::PermissionResult::Denied){
              auto resultHash = QtAndroid::requestPermissionsSync(QStringList({permission}));
              if(resultHash[permission] == QtAndroid::PermissionResult::Denied)
                  return false;
          }
      }
      
      return true;
      }
      
        Михаиллл
        • 29 липня 2019 р. 03:49

        Нужно перед каждой записью эту делать.

          Evgenii Legotckoi
          • 29 липня 2019 р. 03:50

          Понятно, то есть всё упёрлось в права доступа. Раньше такой проблемы не было.

            Михаиллл
            • 29 липня 2019 р. 03:53

            Да, странные трудности. И ведь в манифесте я это добавил

              D
              • 08 липня 2020 р. 07:09

              можете подсказать куда прописать этот код. У меня такая же проблема, нужно создавать файлы в папке зарузок

                Михаиллл
                • 08 липня 2020 р. 08:52

                Вызывайте эту функцию или в самом начале, или когда нужно сохранять файлы. Она дает права доступа для записи.

                  Коментарі

                  Only authorized users can post comments.
                  Please, Log in or Sign up
                  AD

                  C++ - Тест 004. Указатели, Массивы и Циклы

                  • Результат:50бали,
                  • Рейтинг балів-4
                  m
                  • molni99
                  • 26 жовтня 2024 р. 12:37

                  C++ - Тест 004. Указатели, Массивы и Циклы

                  • Результат:80бали,
                  • Рейтинг балів4
                  m
                  • molni99
                  • 26 жовтня 2024 р. 12:29

                  C++ - Тест 004. Указатели, Массивы и Циклы

                  • Результат:20бали,
                  • Рейтинг балів-10
                  Останні коментарі
                  ИМ
                  Игорь Максимов22 листопада 2024 р. 23:51
                  Django - Підручник 017. Налаштуйте сторінку входу до Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
                  Evgenii Legotckoi
                  Evgenii Legotckoi01 листопада 2024 р. 01:37
                  Django - Урок 064. Як написати розширення для Python Markdown Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
                  A
                  ALO1ZE19 жовтня 2024 р. 19:19
                  Читалка файлів fb3 на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
                  ИМ
                  Игорь Максимов05 жовтня 2024 р. 18:51
                  Django - Урок 064. Як написати розширення для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
                  d
                  dblas505 липня 2024 р. 22:02
                  QML - Урок 016. База даних SQLite та робота з нею в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                  Тепер обговоріть на форумі
                  Evgenii Legotckoi
                  Evgenii Legotckoi25 червня 2024 р. 02:11
                  добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
                  t
                  tonypeachey115 листопада 2024 р. 18:04
                  google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
                  NSProject
                  NSProject04 червня 2022 р. 14:49
                  Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…
                  9
                  9Anonim25 жовтня 2024 р. 20:10
                  Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…

                  Слідкуйте за нами в соціальних мережах