From 6f837d6f071e646282090c405ecfeb1e30454f42 Mon Sep 17 00:00:00 2001 From: Assam Boudjelthia Date: Fri, 5 Jun 2020 16:34:14 +0300 Subject: Android: fix QDesktopServices::openUrl() error for file scheme path If the url is a "file:" scheme url don't check for permissions which the file won't have, and then disable StrictMode for API >= 24 to be able to pass the "file:" path to the openUrl intent. Pick-to: 5.15 Fixes: QTBUG-67877 Change-Id: Ia3fecc24a67069dc76f866455277bf8b929e7697 Reviewed-by: Andy Shaw --- src/android/jar/src/org/qtproject/qt5/android/QtNative.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/android') diff --git a/src/android/jar/src/org/qtproject/qt5/android/QtNative.java b/src/android/jar/src/org/qtproject/qt5/android/QtNative.java index 83e576095b..066352cedd 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/QtNative.java +++ b/src/android/jar/src/org/qtproject/qt5/android/QtNative.java @@ -169,9 +169,11 @@ public class QtNative try { Uri parsedUri = Uri.parse(uri); String scheme = parsedUri.getScheme(); - // We only want to check permissions for files and content Uris - if (scheme.compareTo("file") != 0 && scheme.compareTo("content") != 0) + + // We only want to check permissions for content Uris + if (scheme.compareTo("content") != 0) return parsedUri; + List permissions = context.getContentResolver().getPersistedUriPermissions(); String uriStr = parsedUri.getPath(); @@ -217,7 +219,7 @@ public class QtNative } catch (UnsupportedOperationException e) { Log.e(QtTAG, "openURL(): Unsupported operation for given Uri"); return false; - } catch (ActivityNotFoundException e) { + } catch (Exception e) { e.printStackTrace(); return false; } -- cgit v1.2.3