Как получить FileInputStream для файлов внутренней памяти в Android?Файл находится в моей пользовательской папке, сделанной в пространстве приложения - PullRequest
4 голосов
/ 11 января 2011

Как получить FileInputStream для файла во внутренней памяти в Android, который не находится в каталоге файлов приложения по умолчанию.

Я создал новый каталог в моей области приложения. Так что openFileInput("filename") будет работать только для файлов в getFilesDir(). И openFileInput("filename") не принимает аргумент с разделителями пути "/", поэтому я могу изменить его на ../myfolder/.

Есть ли способ получить FileInputStream на это? ..

Примечание. При использовании обычных API File = new File (...) выдает ошибки, в которых отказано в разрешении. И я уже создал данный Context.MODE_WORLD_WRITEABLE в качестве разрешения для моей пользовательской папки.

Чтобы было понятно: Мой файл здесь ==> /data/data/com.app.package/app_myfolder/file1.tmp где «myfolder» ==> создается с правами доступа Context.MODE_WORLD_WRITEABLE.

Я хочу открыть FileInputStream на file1.tmp. (Обычно ваши файлы находятся здесь /data/data/com.app.package/files/file1.tmp и getFilesDir() указывает на этот каталог, поэтому openFileInput("") принимает аргументы, которые существуют в том же каталоге по умолчанию.)

1 Ответ

0 голосов
/ 19 января 2011

Как получить FileInputStream для файла во внутренней памяти в Android, который не находится в каталоге файлов приложений по умолчанию.

Вы не можете, если рассматриваемый файл не создан с использованием openFileOutput() с MODE_WORLD_READABLE, и это не очень хорошая идея (поскольку любое приложение теперь может читать этот файл).

Поскольку файл был создан в результате действия камеры в результате для startActivityForResult () для MediaStore.ACTION_IMAGE_CAPTURE намерение.

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

Так есть ли способ изменить эти разрешения?

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

...