Перейти к содержанию
Fire Monkey от А до Я
  • 0

Файловая система Android и Embarcadero


Steepe_Hare

Вопрос

Походил с компа по смартфону и обратил внимание, что мои Android-приложения создают свои подпапки
в папках Android\data и Android\obb (без моего ведома).

Подпапки носят названия: com.embarcadero.[Название проекта в Delphi] и ничего не содержат.
В папке Android\data создается внутри com.embarcadero.[Название проекта в Delphi]
еще одна подпапка под названием files (тоже пустая).

Зачем они и как изменить их названия (com.embarcadero)?

И еще такой вопрос. Через Project/Delployment добавил mp3-файл (в RemotePath стоит .\).
mp3-файл в Винде лежал в одной папке с проектом.

Куда он скопировался при установке на Android и почему я из программы не могу его проиграть таким кодом:

  if (MediaPlayer1.State = TMediaState.Playing) then
    MediaPlayer1.Stop
  else
  begin
    FName := TPath.GetDocumentsPath + PathDelim + '1.mp3';
    MediaPlayer1.FileName := FName;
    MediaPlayer1.Play;
  end;

И наконец такой вопрос: если настройки приложения хранить в ini-файлах, то куда они (ini-файлы) по умолчанию сохраняются?

 

Изменено пользователем Andrey Efimov
Тема перенесена в соответствующий раздел
Ссылка на комментарий

Рекомендуемые сообщения

  • 0
  • Модераторы

Кратко: вам необходимо изучить основы по Android'у

Более полный ответ:

В первую очередь читайте справку по Android'у и по RAD Studio, не надо сразу бежать на форум... всё уже давно описано.

А также смотрите примеры идущие со студией.

Не забудьте внимательно ознакомиться с правилами форума

Далее...

Читайте блоги по Delphi, там вы также найдёте ответы на большинство вопросов.

Deployment Manager или куда ещё можно задеплоить файлы

ещё добавлю, apk - это обычный zip файл, вы можете открыть его и посмотреть, что там внутри и где что лежит.

1 час назад, Steepe_Hare сказал:

И наконец такой вопрос: если настройки приложения хранить в ini-файлах, то куда они (ini-файлы) по умолчанию сохраняются?

Какой путь укажите, там и будут храниться, допустим вот так:

TIniFile.Create(TPath.Combine(TPath.GetDocumentsPath, 'settings.ini'));

 

p.s. Пожалуйста, соблюдайте правила форума и читайте справку. Тему перенёс в соответствующий раздел.

Ссылка на комментарий
  • 0
  • Модераторы
38 минут назад, Steepe_Hare сказал:

Извините, у меня с английским плохо((

Без обид, но когда так говорят, я считаю это отмазкой. Живём не в 20 веке, сейчас есть переводчики типа Google Переводчик, как минимум можно хоть попытаться прочитать (хотя там очень даже хорошо переводит)... Полезно скачать любую книжку по Android для разработчиков и почитать, там очень часто описывают основы. Ну и никто не отменял поисковики зачем нужна папка Android obb. В русскоязычном сегменте интернета, также полно информации.

Далее по RAD Studio, не хотите читать справку, читайте книги, например, хорошие от автора Дмитрий Осипов:

  • Delphi XE2
  • Базы данных и Delphi
  • Delphi Программирование для Windows, OS X, iOS и Android

А вообще, переводчик довольно неплохо справляется и вполне можно понять, что там в справке написано...

 

p.s. Переписывать справку или книги на форум, у меня, желания нет...

Ссылка на комментарий
  • 0
11 часов назад, Steepe_Hare сказал:

И еще такой вопрос. Через Project/Delployment добавил mp3-файл (в RemotePath стоит .\).
mp3-файл в Винде лежал в одной папке с проектом.

Надо заменить путь на .\assets\internal , тогда System.IOUtils.TPath.GetDocumentsPath

Ссылка на комментарий
  • 0
В 01.11.2016 в 01:30, Andrey Efimov сказал:

Какой путь укажите, там и будут храниться, допустим вот так:


TIniFile.Create(TPath.Combine(TPath.GetDocumentsPath, 'settings.ini'));

 

Правильно я понимаю, что если пользователь случайно удалит приложение, то папка GetDocumentsPath тоже удалится?
Если да, то туда лучше не сохранять данные, которые генерирует программа (я думал туда сохранять не только ini-файлы).
Тогда куда лучше сохранять? GetSharedDocumentsPath, GetPublicPath или куда-то еще?

Ссылка на комментарий
  • 0
  • Модераторы
59 минут назад, Steepe_Hare сказал:

 

Правильно.

Если это технические файлы, то там им и место, ну максимум в папку приложения, на сд карту вынести. Мусорить на устройстве пользователя не хорошо!

Если это например фотографии из галереи, то им в галерее место.

А так можете попробовать писать в общие папки. Если вы смотрели ссылки которые я вам кидал, то скорее всего заметили, что для общих папок в названии метода указано слово "Shared".

К сожалению, не помню, есть ли какие-то нюансы по записи в такие папки начиная с Android KitKat. В этой версии ввели жёсткие ограничения, чтобы приложения не мусорили + это дополнительная защита. Я писал про это тут Android 4.4 и запись на внешнюю карту памяти... (уже не важно, ниже дал ссылку на справку)

Попробуйте, поэкспериментируйте с путями...

 

p.s. Если уж совсем невмоготу, то попробуйте создать папку для приложения во внутренней памяти и там хранить все доп. файлы

 

Дополнение.

Вот справка на русском Сохранение файлов, собственно, там написано всё тоже самое.

Ссылка на комментарий
  • 0

Уже второй час бьюсь, не могу получить путь к папке android/obb своего проекта. Уже и TPath облазил и AndroidApi.IOUtils в них ничего про obb нет почему-то. Есть ли такая функция?

Подскажите пожалуйста.

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...