try to fix permission check

This commit is contained in:
Anthony Calosa
2024-10-21 21:56:23 +08:00
parent 05ce94d36f
commit 91cfd1ff3a

View File

@@ -215,7 +215,12 @@ public class Main extends ForgeAndroidApplication {
TextView text = new TextView(this); TextView text = new TextView(this);
text.setGravity(Gravity.LEFT); text.setGravity(Gravity.LEFT);
text.setTypeface(Typeface.SERIF); text.setTypeface(Typeface.SERIF);
String SP = Build.VERSION.SDK_INT > Build.VERSION_CODES.Q ? "Files & Media" : "Storage Permission"; String SP = "Storage Permission";
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
SP = "Photos and Videos, Music and Audio Permissions";
} else if (Build.VERSION.SDK_INT > Build.VERSION_CODES.Q) {
SP = "Files & Media Permissions";
}
String title = "Forge needs " + SP + " to run properly...\n" + String title = "Forge needs " + SP + " to run properly...\n" +
"Follow these simple steps:\n\n"; "Follow these simple steps:\n\n";
@@ -407,8 +412,14 @@ public class Main extends ForgeAndroidApplication {
int pid = android.os.Process.myPid(); int pid = android.os.Process.myPid();
int uid = android.os.Process.myUid(); int uid = android.os.Process.myUid();
try { try {
int result = getBaseContext().checkPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE, pid, uid); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
return result == PackageManager.PERMISSION_GRANTED; if (getBaseContext().checkPermission(android.Manifest.permission.READ_MEDIA_IMAGES, pid, uid) == PackageManager.PERMISSION_GRANTED)
if (getBaseContext().checkPermission(android.Manifest.permission.READ_MEDIA_AUDIO, pid, uid) == PackageManager.PERMISSION_GRANTED)
return getBaseContext().checkPermission(android.Manifest.permission.READ_MEDIA_VIDEO, pid, uid) == PackageManager.PERMISSION_GRANTED;
return false;
} else {
return getBaseContext().checkPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE, pid, uid) == PackageManager.PERMISSION_GRANTED;
}
} catch (NullPointerException e) { } catch (NullPointerException e) {
return false; return false;
} }