У меня проблема с внутренней памятью Android. Я создал папку в корневой папке пакета с именем getDir()
и с MODE_WORLD_WRITEABLE
, потому что я хочу, чтобы приложение камеры записывало захваченное изображение в эту папку. Во всяком случае, я вижу, что захваченное изображение находится внутри этой папки с DDMS
.
Проблема в том, что я не могу прочитать этот файл.
Я пытался прочитать файл с этим кодом:
File file = context.getDir("images", Context.MODE_WORLD_READABLE);
File image = new File(file, "image.jpeg");
if (image.canRead())
Log.w("read", "can read");
else
Log.w("read", "can't read");
А в LogCat есть только второе сообщение (не читается).
Я также пытался создать FileInputStream
с именем файла, но я получаю FileNotFoundException
.
Может кто-нибудь сказать мне, что я здесь не так делаю?
Заранее спасибо
EDIT:
Чтение файла правильное, но единственная проблема заключается в том, что когда приложение cam сохраняет изображение в указанное место, разрешения, установленные приложением cam для файла изображения, равны -rwxrwx---.
После изменения разрешений с помощью
adb (chmod 777 image.jpeg)
Мне удалось прочитать изображение. Интересно, что приложение cam записывает файлы изображений в sdcard
с ----rwxr-x
.
Есть ли способ изменить разрешение файла во время выполнения?