Android: Allow SDL_IOFromFile to open content:// URI. (#9696)

This commit is contained in:
Miku AuahDark
2024-05-07 00:05:49 +08:00
committed by GitHub
parent 61c99c0da7
commit 33ae7e38d6
6 changed files with 99 additions and 3 deletions

View File

@@ -23,6 +23,7 @@ import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.ParcelFileDescriptor;
import android.util.DisplayMetrics;
import android.util.Log;
import android.util.SparseArray;
@@ -44,6 +45,7 @@ import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import java.io.FileNotFoundException;
import java.util.Hashtable;
import java.util.Locale;
@@ -1938,6 +1940,23 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
}
return 0;
}
/**
* This method is called by SDL using JNI.
*/
public static int openFileDescriptor(String uri, String mode) throws Exception {
if (mSingleton == null) {
return -1;
}
try {
ParcelFileDescriptor pfd = mSingleton.getContentResolver().openFileDescriptor(Uri.parse(uri), mode);
return pfd != null ? pfd.detachFd() : -1;
} catch (FileNotFoundException e) {
e.printStackTrace();
return -1;
}
}
}
/**