summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/android/qandroidplatformservices.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/android/qandroidplatformservices.cpp')
-rw-r--r--src/plugins/platforms/android/qandroidplatformservices.cpp21
1 files changed, 6 insertions, 15 deletions
diff --git a/src/plugins/platforms/android/qandroidplatformservices.cpp b/src/plugins/platforms/android/qandroidplatformservices.cpp
index 02fe29e576..9c21abe39b 100644
--- a/src/plugins/platforms/android/qandroidplatformservices.cpp
+++ b/src/plugins/platforms/android/qandroidplatformservices.cpp
@@ -43,30 +43,21 @@
#include <QUrl>
#include <QDir>
#include <QDebug>
+#include <QtCore/private/qjni_p.h>
QT_BEGIN_NAMESPACE
QAndroidPlatformServices::QAndroidPlatformServices()
{
- QtAndroid::AttachedJNIEnv env;
- if (!env.jniEnv)
- return;
-
- m_openURIMethodID = env.jniEnv->GetStaticMethodID(QtAndroid::applicationClass(),
- "openURL",
- "(Ljava/lang/String;)V");
}
bool QAndroidPlatformServices::openUrl(const QUrl &url)
{
- QtAndroid::AttachedJNIEnv env;
- if (!env.jniEnv)
- return false;
-
- jstring string = env.jniEnv->NewString(reinterpret_cast<const jchar *>(url.toString().constData()),
- url.toString().length());
- env.jniEnv->CallStaticVoidMethod(QtAndroid::applicationClass(), m_openURIMethodID, string);
- env.jniEnv->DeleteLocalRef(string);
+ QJNIObjectPrivate urlString = QJNIObjectPrivate::fromString(url.toString());
+ QJNIObjectPrivate::callStaticMethod<void>(QtAndroid::applicationClass(),
+ "openURL",
+ "(Ljava/lang/String;)V",
+ urlString.object());
return true;
}