Могу ли я создать папку на внутренней памяти Android? - PullRequest
0 голосов
/ 22 августа 2011

Предположим, я имею дело с приложением текстового редактора. Я хочу хранить созданные текстовые файлы в папке, которая будет в телефоне или SDCard (по выбору пользователя). Я просто хочу сохранить файлы в папке на внутренней памяти (телефон). Могу ли я создать папку на внутреннем хранилище Android из кода и скопировать туда эти файлы? Папка, которая не будет приватной для моего приложения или хранилища в папке "/ data / data / MyapplicationPackage /" и может быть открыта пользователем (читать)? Любой намек? Спасибо.

Ответы [ 4 ]

0 голосов
/ 08 мая 2016

Я тоже столкнулся с той же проблемой. Я хотел создать папку во внутренней памяти. Я пробовал много кода, предоставленного в самом стеке потока. Но ни один из них не работал должным образом. Итак, в конце концов я дал свой собственный корневой каталог.

File newFolder = new File("/storage/emulated/0/", "Folder_Name");

Этот код работал абсолютно нормально для меня.

0 голосов
/ 22 августа 2011

Взгляните на здесь . У вас есть много вариантов сделать это, и все зависит от установленных имен на вашем устройстве. См. API getDir (), чтобы создать путь к файлу для личного файла.

Проверьте также, по какому пути приложение для записи звука записывает свои файлы, что для меня решено, поскольку я не мог заставить работать какой-либо личный файл из-за отсутствия разрешений.

Вы всегда можете войти в ADB в консольном режиме, с помощью "adb shell" и запустить команду "mount" linux, чтобы увидеть все ваши смонтированные файлы, однако вам потребуется root-доступ.

0 голосов
/ 22 августа 2011

Чтобы удовлетворить ваши требования, вы можете:

  1. Храните файлы и папки вашего приложения во внешнем хранилище (SD-карта).
  2. Предоставляет некоторую функцию «экспорта», позволяющую пользователям экспортировать свои файлы и папки (возможно, в виде zip-файла). Если вы используете ACTION_SEND, вы можете разрешить им отправлять экспортированные файлы по электронной почте, сохранять их в Dropbox и т. Д. Практически бесплатно.
  3. Сделайте ваши данные доступными через ContentProvider , чтобы скрыть фактический механизм хранения. В зависимости от типа данных вы можете захотеть контролировать доступ к этому провайдеру.
0 голосов
/ 22 августа 2011

Насколько я знаю, можно, но это не соответствует вашим критериям. Он будет закрытым, хранится в / data / data / ... и не будет доступен пользователю, кроме как через приложение. Это если пользователь не рутирован.

...