diff options
author | Fredia Huya-Kouadio <fhuya@meta.com> | 2023-03-20 08:56:04 -0700 |
---|---|---|
committer | Fredia Huya-Kouadio <fhuya@meta.com> | 2023-03-20 08:56:04 -0700 |
commit | f02e4e4091ccabe05e3eb114b888c2ede86ab189 (patch) | |
tree | a8a90c8106b40faeb33fee2dc0850d7e18033550 /platform/android | |
parent | 27038ca74fe01d21c794daf1a6da2ef12ecdb451 (diff) | |
download | redot-engine-f02e4e4091ccabe05e3eb114b888c2ede86ab189.tar.gz |
Fix directory access when the running app has the `All files access` permission
Diffstat (limited to 'platform/android')
-rw-r--r-- | platform/android/java/lib/src/org/godotengine/godot/io/StorageScope.kt | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/platform/android/java/lib/src/org/godotengine/godot/io/StorageScope.kt b/platform/android/java/lib/src/org/godotengine/godot/io/StorageScope.kt index 833ab40af0..8ee3d5f48f 100644 --- a/platform/android/java/lib/src/org/godotengine/godot/io/StorageScope.kt +++ b/platform/android/java/lib/src/org/godotengine/godot/io/StorageScope.kt @@ -76,6 +76,13 @@ internal enum class StorageScope { return UNKNOWN } + // If we have 'All Files Access' permission, we can access all directories without + // restriction. + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R + && Environment.isExternalStorageManager()) { + return APP + } + val canonicalPathFile = pathFile.canonicalPath if (internalAppDir != null && canonicalPathFile.startsWith(internalAppDir)) { @@ -90,7 +97,7 @@ internal enum class StorageScope { return APP } - var rootDir: String? = System.getenv("ANDROID_ROOT") + val rootDir: String? = System.getenv("ANDROID_ROOT") if (rootDir != null && canonicalPathFile.startsWith(rootDir)) { return APP } |