Android создает файл во внутреннем хранилище с правом чтения по всему миру

#android #file #storage #permission-denied

#Android #файл #Хранение #в разрешении отказано

Вопрос:

Я разрабатываю приложение для Android.

Я храню файлы во внутреннем хранилище с помощью метода :

 getDir("myfolder", Context.MODE_WORLD_READABLE)
  

Затем я создаю файл :

 File myFile = new File("myFile");
myFile.createNewFile();
  

Но когда я просматриваю свое внутреннее хранилище (с помощью «File Explorer» или «ADB») Я вижу, что «myFile» создан, но у него нет тех же прав, что и у «MyFolder»:

 drwxrwxr-x app_88   app_88            2011-11-10 15:39 myFolder
-rw------- app_88   app_88          0 2011-11-10 15:39 myFile
  

В File API я вижу метод «setReadable», который может устанавливать права чтения для меня и всего мира, но этот метод предназначен только для API 9-го уровня, а я разрабатываю для API 7-го уровня и более.

Здесь это проблема, потому что у меня нет разрешения на чтение файла «myFile» благодаря ADB или File Explorer. Я получаю сообщение об ошибке «Отказано в разрешении», и я не хочу «рутировать» свое устройство из-за рисков.

Любая помощь?

Ответ №1:

Я думаю, вы можете сделать то же самое с файлом: http://developer.android.com/reference/android/content/Context.html#openFileOutput(java.lang .Строка, int) (доступна с уровня API 1)

HTH

Комментарии:

1. Обратите внимание, что файл хранится в files подкаталоге вашего приложения; тот же каталог, возвращаемый context.getFilesDir() .