Check granted URI permisions

This commit is contained in:
M66B
2023-01-18 09:01:00 +01:00
parent 241778348a
commit c7a8855cd7
5 changed files with 28 additions and 0 deletions

View File

@@ -41,6 +41,7 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.UriPermission;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
@@ -2611,6 +2612,23 @@ public class Helper {
return (Looper.myLooper() == Looper.getMainLooper());
}
static boolean isPersisted(Context context, Uri uri, boolean read, boolean write) {
try {
List<UriPermission> uperms = context.getContentResolver().getPersistedUriPermissions();
for (UriPermission uperm : uperms)
if (uperm.getUri().equals(uri)) {
boolean canRead = uperm.isReadPermission();
boolean canWrite = uperm.isWritePermission();
Log.i(uri + " read=" + read + "/" + canRead + " write=" + write + "/" + canWrite);
return (!read || canRead) && (!write || canWrite);
}
return false;
} catch (Throwable ex) {
Log.e(ex);
return !BuildConfig.DEBUG;
}
}
// Cryptography
static String sha256(String data) throws NoSuchAlgorithmException {