diff --git a/editor/editor_file_system.cpp b/editor/editor_file_system.cpp index 0fe8ad67cf2..d5851f9b45a 100644 --- a/editor/editor_file_system.cpp +++ b/editor/editor_file_system.cpp @@ -1069,15 +1069,19 @@ void EditorFileSystem::scan() { if (first_scan) { _first_scan_filesystem(); #ifdef ANDROID_ENABLED - const String nomedia_file_path = ProjectSettings::get_singleton()->get_resource_path().path_join(".nomedia"); - if (!FileAccess::exists(nomedia_file_path)) { - // Create a .nomedia file to hide assets from media apps on Android. - Ref f = FileAccess::open(nomedia_file_path, FileAccess::WRITE); - if (f.is_null()) { - // .nomedia isn't so critical. - ERR_PRINT("Couldn't create .nomedia in project path."); - } else { - f->close(); + // Android 11 has some issues with nomedia files, so it's disabled there. See GH-106479 and GH-105399 for details. + String sdk_version = OS::get_singleton()->get_version().get_slicec('.', 0); + if (sdk_version != "30") { + const String nomedia_file_path = ProjectSettings::get_singleton()->get_resource_path().path_join(".nomedia"); + if (!FileAccess::exists(nomedia_file_path)) { + // Create a .nomedia file to hide assets from media apps on Android. + Ref f = FileAccess::open(nomedia_file_path, FileAccess::WRITE); + if (f.is_null()) { + // .nomedia isn't so critical. + ERR_PRINT("Couldn't create .nomedia in project path."); + } else { + f->close(); + } } } #endif diff --git a/editor/project_manager/project_dialog.cpp b/editor/project_manager/project_dialog.cpp index 118e6e486c4..42bacd97d53 100644 --- a/editor/project_manager/project_dialog.cpp +++ b/editor/project_manager/project_dialog.cpp @@ -739,14 +739,18 @@ void ProjectDialog::ok_pressed() { hide(); if (mode == MODE_NEW || mode == MODE_IMPORT || mode == MODE_INSTALL) { #ifdef ANDROID_ENABLED - // Create a .nomedia file to hide assets from media apps on Android. - const String nomedia_file_path = path.path_join(".nomedia"); - Ref f2 = FileAccess::open(nomedia_file_path, FileAccess::WRITE); - if (f2.is_null()) { - // .nomedia isn't so critical. - ERR_PRINT("Couldn't create .nomedia in project path."); - } else { - f2->close(); + // Android 11 has some issues with nomedia files, so it's disabled there. See GH-106479, GH-105399 for details. + String sdk_version = OS::get_singleton()->get_version().get_slicec('.', 0); + if (sdk_version != "30") { + // Create a .nomedia file to hide assets from media apps on Android. + const String nomedia_file_path = path.path_join(".nomedia"); + Ref f2 = FileAccess::open(nomedia_file_path, FileAccess::WRITE); + if (f2.is_null()) { + // .nomedia isn't so critical. + ERR_PRINT("Couldn't create .nomedia in project path."); + } else { + f2->close(); + } } #endif emit_signal(SNAME("project_created"), path, edit_check_box->is_pressed()); diff --git a/platform/android/os_android.cpp b/platform/android/os_android.cpp index 5809c9463a9..aca5d5143f7 100644 --- a/platform/android/os_android.cpp +++ b/platform/android/os_android.cpp @@ -315,7 +315,7 @@ String OS_Android::get_version() const { } // Handles stock Android. - String sdk_version = get_system_property("ro.build.version.sdk_int"); + String sdk_version = get_system_property("ro.build.version.sdk"); String build = get_system_property("ro.build.version.incremental"); if (!sdk_version.is_empty()) { if (!build.is_empty()) {