如何解决范围存储:重新安装后无法删除由我自己的应用创建的文件
我正在尝试使用以下代码读取通过我的应用下载的PDF文件。
@JvmStatic
@RequiresApi(Build.VERSION_CODES.Q)
fun readFileFromTheStorage(fileName: String,volumePath: Uri?,context: Context): Uri? {
val collection = volumePath
?: MediaStore.Downloads.getContentUri(MediaStore.VOLUME_EXTERNAL_PRIMARY)
val projection = arrayOf(
MediaStore.Downloads._ID
)
val selection = "${MediaStore.Downloads.DISPLAY_NAME} = '" + fileName.replace("\'","_") + "'"
context.contentResolver.query(
collection,projection,selection,null,null
)?.use { cursor ->
while (cursor.moveToNext()) {
val idColumn = cursor.getColumnIndexOrThrow(MediaStore.Downloads._ID)
val id = cursor.getLong(idColumn)
val uri = ContentUris.withAppendedId(
collection,id)
return uri
}
}
return null
}
如果我下载文件并将其存储在下载目录中,则可以读取该文件,但是如果我卸载该应用程序并再次重新安装,则上述代码将返回null。我不确定为什么会这样。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。