LINUX.ORG.RU

Какой каталог показывать пользователю по-умолчанию в Android?

 , sd-карта, , ,


0

1

Имеется разрабатываемая программа под Андроид. В ней предусмотрена возможность выбора файла, необходимого для определенного режима работы программы. Для этого сделан самодельный виджет выбора файла (на QML+Qt). Файл может лежать где угодно:

- на локальной файловой системе
- на флешке в SD-слоте
- на флешке, подключаемой через USB-OTG
- на вируальном «внешнем хранилище»

Вопрос в том, какой каталог Андроид показывать пользователю по умолчанию, например при первом выборе файла? А какой каталог показывать, если предыдущего каталога, где ранее был сделан выбор, просто нет (потому что вытащили флешку)?

Я сейчас по-умолчанию показываю каталог приложения, типа

/data/user/0/ru.наименованиеОрганизации.наименованиеПриложения

но заказчику не нравится. Показать корень - не вариант, потому что есть мобильники (например с Android 7) где корень не читается.

★★★★★

Последнее исправление: Xintrea (всего исправлений: 1)
Ответ на: комментарий от Xintrea

В жаве для получения абсолютного пути к internal storage не зависимо от устройства используют Context.getFilesDir().getAbsolutePath(), например.

Singularity ★★★★★
()
Ответ на: комментарий от Xintrea

Если это заведомо не видео, не аудио и не фотки - то его. Это такой кроссплатформенный аналог «Моих документов».

Но на всякий случай почитай полный список вариантов. Я его наизусть не помню, а пишу сейчас с телефона.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)

По хорошему надо пользоваться Documents API для таких вещей, хоть это и очередное ненужное гугловское усложнение.

a1batross ★★★★★
()
Ответ на: комментарий от hobbit

Конструкция:

QStandardPaths::locate(QStandardPaths::DocumentsLocation, QString(), QStandardPaths::LocateDirectory);

Возвращает на Андроиде 6 страшненький путь типа:
/storage/emulated/0/Android/ru.наименованиеОрганизации.наименованиеПриложения/files/Documents
В общем это не системный путь, а путь для вполне конкретного приложения.

В документации QStandardPaths есть примеры под Android. Там все пути относительно APPROOT.

Системный путь через QStandardPaths не получишь.

Xintrea ★★★★★
() автор топика
Последнее исправление: Xintrea (всего исправлений: 1)

какой каталог Андроид показывать пользователю по умолчанию, например при первом выборе файла

Встроенную память. Но сделай в настройках возможность сменить дефолт на внешнюю карту.

А какой каталог показывать, если предыдущего каталога, где ранее был сделан выбор, просто нет (потому что вытащили флешку)?

То же самое.

devl547 ★★★★★
()
Ответ на: комментарий от devl547

Встроенную память

А путь до этого каталога как получить?

Xintrea ★★★★★
() автор топика

/sdcard отсутствует? читай корень. корень не читается? читай тот путь, что ты используешь сейчас.

anonymous
()

Салют, балванку из talks в dev! По мотивам: https://www.linux.org.ru/forum/talks/14291737?lastmod=1529356505632

Тестировалось здесь:

  • openSUSE Tumbleweed 20180615
  • KDE Plasma: 5.13.0
  • KDE Frameworks: 5.46.0
  • Qt: 5.11.0
  • Архитектура: 64-битная

Результаты:

  • 1. Да;
  • 2. Да, видны. Пожалуйста, увеличьте иконки в приложении хотя бы в два раза. Может сделать к ним подписи, опционально? На рабочей панели и в трее иконки приложения норм, но в программе - АДъ.
  • 3. Да. Удостоверился (ebay и лор дали норм результат);
  • 4. Нет. Скачивается, но открыть не могу. Жму два раза мышкой на файле, ентером, правой кнопкой + превью - не открывается, вообще никаких действий. Но в каталоге data файлы есть. Заметил, что есть Save as и он предлагает сохранить в нужном виде, но нафехуа это там? Файл _уже_ скачен, почему он не может открыть его? Так и задумано, или? Если так и задумано, то всё работает, хоть я и нахожу странным такое поведение.
  • 5. Да. Удостоверился дважды, со штатной и usb клавиатур.

P.S. Отличная программа, буду пользоваться и донатить по мере сил. Добавьте ссылки на эту тему где-нибудь.

anonymous
()

создавай пустой каталог сам и помещай туда рекламку программы

anonymous
()

Если что, то я жду ответа по поводу прикреплённых по URL файлов.

anonymous
()
Ответ на: комментарий от anonymous

Добавь в mytetra.run строку:

export QT_QPA_PLATFORM_PLUGIN_PATH=$PROGDIR/platforms

И проверь как предпросматриваются прикрепленные файлы. Результаты пиши в тему:

Прошу потестировать предрелиз PIM MyTetra (open source) (комментарий)

Xintrea ★★★★★
() автор топика
Ответ на: комментарий от Xintrea

Сделал так:

https://pastebin.com/ggK9GD42

Вроде, ничего не изменилось. Пробовал также 3 способами просмотреть (2 раза мышкой, превью и ентер):

https://pastebin.com/NEbXVTrk.

tailgunner пока что тему в dev не может перенести. Отправлять сообщения в ту ветку я не смогу :(

P.S. Ещё забавно, что нигде не отображается по какой ссылке был скачан файл. Мне кажется, это было бы удобно. И да, вы таки увеличите иконки в программе?)

anonymous
()
Ответ на: комментарий от Xintrea

Вопрос закрыт без ответа, или не нужно просто черзе *.run в portable-mode запускать?

P.S. tailgunner, либо ты не модератор(?), либо Король Шлангов. Удачи тебе. Более тебя никак касаться не буду.

anonymous
()
Ответ на: комментарий от anonymous

Попробуй вот эту предрелизную версию:

Прошу потестировать предрелиз PIM MyTetra (open source) (комментарий)

только подправь mytetra.run как вот здесь написано:

Прошу потестировать предрелиз PIM MyTetra (open source) (комментарий)

Прикрепляемые файлы должны начать открываться.

Xintrea ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.