Программное изменение прав доступа к файлам в приложении AndroidAndroid

Форум для тех, кто программирует под Android
Ответить
Гость
 Программное изменение прав доступа к файлам в приложении Android

Сообщение Гость »

В моем приложении для Android я хочу создавать файлы, сохраняемые в случае удаления приложения.
Я могу создать скрытый файл в
File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), ".SecretFolder")

Моя цель — изменить разрешения на чтение и запись для этого файла.
Я пытался удалить свое приложение -> Файл сохранен. После установки во время чтения я получаю AccessDeniedException
Теперь, если я хочу изменить разрешение на чтение и запись, используя File.setReadable(true, false) и File.setWritable(true, false) ), я не вижу никаких изменений в проводнике файлов устройств Android (остается -rw-------), даже если API возвращает true для обоих.
Примечание. Я использую виртуальное устройство на базе Android 11, API 30. Я не ориентируюсь конкретно на эту версию
вот мой код:
private fun writeFileOnInternalStorage(remainingToken : Int) {
val dir = File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), ".SecretFolder")
if(!dir.exists()){
if(dir.mkdirs()){
var allowed = dir.setReadable(true, false)
println("DBEUG dir ${dir.toPath()} is world-readable ? $allowed")
allowed = dir.setWritable(true, false)
println("DBEUG dir ${dir.toPath()} is world-writable ? $allowed")
}else{
println("ERROR")
return
}
}
val f = File(dir, ".secretFile")
if(!f.exists()){
f.createNewFile()
var allowed = f.setReadable(true, false)
println("DBEUG ${f.toPath()} is world-readable ? $allowed")
allowed = f.setWritable(true, false)
println("DBEUG ${f.toPath()} is world-writable ? $allowed")
}
f.writeText(remainingToken.toString())
println("DEBUG: written Internal Storage \"${remainingToken}\" in " + f.toPath().toString())
}


Подробнее здесь: https://stackoverflow.com/questions/782 ... mmatically
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»