Android: properly retrieve mime type of uri to for openUrl()
Retrieve the mime type of the url regardless of whether QFile::exists() returns true or false, because it is nonetheless required when calling openUrl(). Pick-to: 6.2 6.3 6.4 5.15 Fixes: QTBUG-47979 Change-Id: Ia095b76d5d39addb0b115eb97ac6bbae0c18a21f Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Samuel Mira <samuel.mira@qt.io> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io> Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
This commit is contained in:
parent
dd40306968
commit
6f418df9cc
@ -47,12 +47,13 @@ bool QAndroidPlatformServices::openUrl(const QUrl &theUrl)
|
||||
// if the file is local, we need to pass the MIME type, otherwise Android
|
||||
// does not start an Intent to view this file
|
||||
const auto fileScheme = "file"_L1;
|
||||
if ((url.scheme().isEmpty() || url.scheme() == fileScheme) && QFile::exists(url.path())) {
|
||||
// a real URL including the scheme is needed, else the Intent can not be started
|
||||
|
||||
// a real URL including the scheme is needed, else the Intent can not be started
|
||||
if (url.scheme().isEmpty())
|
||||
url.setScheme(fileScheme);
|
||||
QMimeDatabase mimeDb;
|
||||
mime = mimeDb.mimeTypeForUrl(url).name();
|
||||
}
|
||||
|
||||
if (url.scheme() == fileScheme)
|
||||
mime = QMimeDatabase().mimeTypeForUrl(url).name();
|
||||
|
||||
using namespace QNativeInterface;
|
||||
QJniObject urlString = QJniObject::fromString(url.toString());
|
||||
|
Loading…
Reference in New Issue
Block a user