在我的Android应用程序中,我希望创建在应用程序卸载时保留的文件.
我可以创建隐藏文件
File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), ".SecretFolder")
我的目标是更改此文件的读写权限.
我试图卸载我的应用程序—文件被保留.>在reaf时安装后,我得到了删除DeniedException
现在,如果我想使用File.setReadable(true, false)
和File.setWritable(true, false)
更改读写权限,即使API都返回true,我也无法在Android设备文件资源管理器中观察到任何变化(rests—rw—).
注意:我使用的是基于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())
}