getExternalStoragePublicDirectory() was deprecated in Android 10 but was undeprecated in API level 32, Android 12. That's why it's working fine on later versions and doesn't show a deprecation warning.
https://developer.android.com/sdk/api_diff/32/changes/android.os.Environment