summaryrefslogtreecommitdiffstats
path: root/src/corelib/io/qstandardpaths_android.cpp
diff options
context:
space:
mode:
authorBogDan Vatra <bogdan@kdab.com>2016-02-17 14:37:50 +0200
committerBogDan Vatra <bogdan@kdab.com>2016-02-17 14:29:58 +0000
commitefcf1dec4992bf7aab5bf1f0f4c0ee8c54030465 (patch)
tree5c46f66065750007a5dafdf7ca394af6f33c2b82 /src/corelib/io/qstandardpaths_android.cpp
parent4a7ccf74ff85a49e8c701a4d1c40f316b6fec4c5 (diff)
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 <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Diffstat (limited to 'src/corelib/io/qstandardpaths_android.cpp')
-rw-r--r--src/corelib/io/qstandardpaths_android.cpp17
1 files changed, 8 insertions, 9 deletions
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();