diff options
author | BogDan Vatra <bogdan@kdab.com> | 2016-02-17 14:37:50 +0200 |
---|---|---|
committer | BogDan Vatra <bogdan@kdab.com> | 2016-02-17 14:29:58 +0000 |
commit | efcf1dec4992bf7aab5bf1f0f4c0ee8c54030465 (patch) | |
tree | 5c46f66065750007a5dafdf7ca394af6f33c2b82 /src/corelib/io/qstandardpaths_android.cpp | |
parent | 4a7ccf74ff85a49e8c701a4d1c40f316b6fec4c5 (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.cpp | 17 |
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(); |