From efcf1dec4992bf7aab5bf1f0f4c0ee8c54030465 Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Wed, 17 Feb 2016 14:37:50 +0200 Subject: Say hello to Android Services This changeset enables running a QCoreApplication from within an Android Service. The Android Application running can now have a QtActivity or a QtService, but having both in the same process is not supported. This patch was based on Cory Slep's patch [ChangeLog][Android] Qt can now be used to easily create Android Services. Task-number: QTBUG-37221 Change-Id: I0fd693daaa85b991940ffe9cc41c483022677199 Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/corelib/io/qstandardpaths_android.cpp | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'src/corelib/io/qstandardpaths_android.cpp') diff --git a/src/corelib/io/qstandardpaths_android.cpp b/src/corelib/io/qstandardpaths_android.cpp index 1b0db64815..2a44daf8b5 100644 --- a/src/corelib/io/qstandardpaths_android.cpp +++ b/src/corelib/io/qstandardpaths_android.cpp @@ -63,12 +63,15 @@ static QJNIObjectPrivate applicationContext() if (appCtx.isValid()) return appCtx; - QJNIObjectPrivate activity(QtAndroidPrivate::activity()); - if (!activity.isValid()) - return appCtx; + QJNIObjectPrivate context(QtAndroidPrivate::activity()); + if (!context.isValid()) { + context = QtAndroidPrivate::service(); + if (!context.isValid()) + return appCtx; + } - appCtx = activity.callObjectMethod("getApplicationContext", - "()Landroid/content/Context;"); + appCtx = context.callObjectMethod("getApplicationContext", + "()Landroid/content/Context;"); return appCtx; } @@ -137,10 +140,6 @@ static QString getExternalFilesDir(const char *directoryField = 0) if (!path.isEmpty()) return path; - QJNIObjectPrivate activity(QtAndroidPrivate::activity()); - if (!activity.isValid()) - return QString(); - QJNIObjectPrivate appCtx = applicationContext(); if (!appCtx.isValid()) return QString(); -- cgit v1.2.3