diff options
Diffstat (limited to 'examples/androidextras/services')
57 files changed, 0 insertions, 4044 deletions
diff --git a/examples/androidextras/services/common/common.pri b/examples/androidextras/services/common/common.pri deleted file mode 100644 index 1225f32..0000000 --- a/examples/androidextras/services/common/common.pri +++ /dev/null @@ -1 +0,0 @@ -RESOURCES += $$PWD/qml.qrc diff --git a/examples/androidextras/services/common/common_broadcast.pri b/examples/androidextras/services/common/common_broadcast.pri deleted file mode 100644 index 117f362..0000000 --- a/examples/androidextras/services/common/common_broadcast.pri +++ /dev/null @@ -1,5 +0,0 @@ -INCLUDEPATH += $$PWD - -HEADERS += $$PWD/qtandroidservice.h - -SOURCES += $$PWD/qtandroidservice.cpp diff --git a/examples/androidextras/services/common/common_ro.pri b/examples/androidextras/services/common/common_ro.pri deleted file mode 100644 index eacfc6d..0000000 --- a/examples/androidextras/services/common/common_ro.pri +++ /dev/null @@ -1,3 +0,0 @@ -INCLUDEPATH += $$PWD - -HEADERS += $$PWD/qtandroidservice_ro.h diff --git a/examples/androidextras/services/common/main.qml b/examples/androidextras/services/common/main.qml deleted file mode 100644 index 528212b..0000000 --- a/examples/androidextras/services/common/main.qml +++ /dev/null @@ -1,112 +0,0 @@ - -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -import QtQuick 2.14 -import QtQuick.Window 2.14 -import QtQuick.Controls 2.14 - -Window { - id: window - visible: true - width: 640 - height: 480 - title: qsTr("Hello World") - - Text { - id: pingLabel - y: 100 - text: qsTr("Enter a name:") - anchors.horizontalCenter: parent.horizontalCenter - horizontalAlignment: Text.AlignHCenter - font.pixelSize: 20 - } - - TextInput { - id: pingText - y: 130 - text: "Qt" - anchors.horizontalCenter: parent.horizontalCenter - horizontalAlignment: Text.AlignHCenter - font.pointSize: 24 - } - - Button { - id: sendButton - y: 220 - text: "Send name to Service" - anchors.horizontalCenter: parent.horizontalCenter - onClicked: qtAndroidService.sendToService(pingText.text) - } - - Text { - id: pongLabel - y: 300 - text: qsTr("Android Service replied:") - anchors.horizontalCenter: parent.horizontalCenter - horizontalAlignment: Text.AlignHCenter - font.pixelSize: 20 - } - - Text { - id: pongText - y: 330 - text: qsTr("") - anchors.horizontalCenter: parent.horizontalCenter - horizontalAlignment: Text.AlignHCenter - font.pixelSize: 24 - } - - Connections { - target: qtAndroidService - function onMessageFromService(message) { - pongText.text = message - } - } -} diff --git a/examples/androidextras/services/common/qml.qrc b/examples/androidextras/services/common/qml.qrc deleted file mode 100644 index 5f6483a..0000000 --- a/examples/androidextras/services/common/qml.qrc +++ /dev/null @@ -1,5 +0,0 @@ -<RCC> - <qresource prefix="/"> - <file>main.qml</file> - </qresource> -</RCC> diff --git a/examples/androidextras/services/common/qtandroidservice.cpp b/examples/androidextras/services/common/qtandroidservice.cpp deleted file mode 100644 index 0296892..0000000 --- a/examples/androidextras/services/common/qtandroidservice.cpp +++ /dev/null @@ -1,107 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qtandroidservice.h" - -#include <QAndroidJniEnvironment> -#include <QAndroidIntent> -#include <QtDebug> - -QtAndroidService *QtAndroidService::m_instance = nullptr; - -static void receivedFromAndroidService(JNIEnv *env, jobject /*thiz*/, jstring value) -{ - emit QtAndroidService::instance()->messageFromService( - env->GetStringUTFChars(value, nullptr)); -} - -QtAndroidService::QtAndroidService(QObject *parent) : QObject(parent) -{ - m_instance = this; - - registerNatives(); - registerBroadcastReceiver(); -} - -void QtAndroidService::sendToService(const QString &name) -{ - QAndroidIntent serviceIntent(QtAndroid::androidActivity().object(), - "org/qtproject/example/qtandroidservice/QtAndroidService"); - serviceIntent.putExtra("name", name.toUtf8()); - QAndroidJniObject result = QtAndroid::androidActivity().callObjectMethod( - "startService", - "(Landroid/content/Intent;)Landroid/content/ComponentName;", - serviceIntent.handle().object()); -} - -void QtAndroidService::registerNatives() -{ - JNINativeMethod methods[] { - {"sendToQt", "(Ljava/lang/String;)V", reinterpret_cast<void *>(receivedFromAndroidService)}}; - QAndroidJniObject javaClass("org/qtproject/example/qtandroidservice/ActivityUtils"); - - QAndroidJniEnvironment env; - jclass objectClass = env->GetObjectClass(javaClass.object<jobject>()); - env->RegisterNatives(objectClass, - methods, - sizeof(methods) / sizeof(methods[0])); - env->DeleteLocalRef(objectClass); -} - -void QtAndroidService::registerBroadcastReceiver() -{ - QAndroidJniEnvironment env; - jclass javaClass = env.findClass("org/qtproject/example/qtandroidservice/ActivityUtils"); - QAndroidJniObject classObject(javaClass); - - classObject.callMethod<void>("registerServiceBroadcastReceiver", - "(Landroid/content/Context;)V", - QtAndroid::androidContext().object()); -} diff --git a/examples/androidextras/services/common/qtandroidservice.h b/examples/androidextras/services/common/qtandroidservice.h deleted file mode 100644 index bee1fd3..0000000 --- a/examples/androidextras/services/common/qtandroidservice.h +++ /dev/null @@ -1,78 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QTANDROIDSERVICE_H -#define QTANDROIDSERVICE_H - -#include <QObject> -#include <QtAndroid> -#include <QAndroidIntent> - -class QtAndroidService : public QObject -{ - Q_OBJECT - -public: - QtAndroidService(QObject *parent = nullptr); - - static QtAndroidService *instance() { return m_instance; } - Q_INVOKABLE void sendToService(const QString &name); - -signals: - void messageFromService(const QString &message); - -private: - void registerNatives(); - void registerBroadcastReceiver(); - - static QtAndroidService *m_instance; -}; - -#endif // QTANDROIDSERVICE_H diff --git a/examples/androidextras/services/common/qtandroidservice.rep b/examples/androidextras/services/common/qtandroidservice.rep deleted file mode 100644 index 6b9d676..0000000 --- a/examples/androidextras/services/common/qtandroidservice.rep +++ /dev/null @@ -1,4 +0,0 @@ -class QtAndroidService { - SLOT(void sendToService(const QString &name)); - SIGNAL(messageFromService(const QString &message)); -} diff --git a/examples/androidextras/services/common/qtandroidservice_ro.h b/examples/androidextras/services/common/qtandroidservice_ro.h deleted file mode 100644 index 8e53fb1..0000000 --- a/examples/androidextras/services/common/qtandroidservice_ro.h +++ /dev/null @@ -1,58 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#include "rep_qtandroidservice_source.h" - -class QtAndroidService : public QtAndroidServiceSource -{ -public slots: - void sendToService(const QString &name) override { - emit messageFromService("Hello " + name); - }; -}; diff --git a/examples/androidextras/services/servicebinder/android/AndroidManifest.xml b/examples/androidextras/services/servicebinder/android/AndroidManifest.xml deleted file mode 100644 index 1f63179..0000000 --- a/examples/androidextras/services/servicebinder/android/AndroidManifest.xml +++ /dev/null @@ -1,106 +0,0 @@ -<?xml version="1.0"?> -<manifest package="org.qtproject.example.qtandroidservice" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="-- %%INSERT_VERSION_NAME%% --" android:versionCode="-- %%INSERT_VERSION_CODE%% --" android:installLocation="auto"> - <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28"/> - - <!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application. - Remove the comment if you do not require these default permissions. --> - <!-- %%INSERT_PERMISSIONS --> - - <!-- The following comment will be replaced upon deployment with default features based on the dependencies of the application. - Remove the comment if you do not require these default features. --> - <!-- %%INSERT_FEATURES --> - - <supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/> - - <application android:hardwareAccelerated="true" android:name="org.qtproject.qt.android.bindings.QtApplication" android:label="-- %%INSERT_APP_NAME%% --" android:extractNativeLibs="true"> - <activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density" android:name="org.qtproject.qt.android.bindings.QtActivity" android:label="-- %%INSERT_APP_NAME%% --" android:screenOrientation="unspecified" android:launchMode="singleTop"> - <intent-filter> - <action android:name="android.intent.action.MAIN"/> - <category android:name="android.intent.category.LAUNCHER"/> - </intent-filter> - - <!-- Application arguments --> - <!-- meta-data android:name="android.app.arguments" android:value="arg1 arg2 arg3"/ --> - <!-- Application arguments --> - - <meta-data android:name="android.app.lib_name" android:value="-- %%INSERT_APP_LIB_NAME%% --"/> - <meta-data android:name="android.app.qt_sources_resource_id" android:resource="@array/qt_sources"/> - <meta-data android:name="android.app.repository" android:value="default"/> - <meta-data android:name="android.app.qt_libs_resource_id" android:resource="@array/qt_libs"/> - <meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/> - <!-- Deploy Qt libs as part of package --> - <meta-data android:name="android.app.bundle_local_qt_libs" android:value="-- %%BUNDLE_LOCAL_QT_LIBS%% --"/> - - <!-- Run with local libs --> - <meta-data android:name="android.app.use_local_qt_libs" android:value="-- %%USE_LOCAL_QT_LIBS%% --"/> - <meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/> - <meta-data android:name="android.app.load_local_libs_resource_id" android:resource="@array/load_local_libs"/> - <meta-data android:name="android.app.load_local_jars" android:value="-- %%INSERT_LOCAL_JARS%% --"/> - <meta-data android:name="android.app.static_init_classes" android:value="-- %%INSERT_INIT_CLASSES%% --"/> - <!-- Used to specify custom system library path to run with local system libs --> - <!-- <meta-data android:name="android.app.system_libs_prefix" android:value="/system/lib/"/> --> - <!-- Messages maps --> - <meta-data android:value="@string/ministro_not_found_msg" android:name="android.app.ministro_not_found_msg"/> - <meta-data android:value="@string/ministro_needed_msg" android:name="android.app.ministro_needed_msg"/> - <meta-data android:value="@string/fatal_error_msg" android:name="android.app.fatal_error_msg"/> - <meta-data android:value="@string/unsupported_android_version" android:name="android.app.unsupported_android_version"/> - <!-- Messages maps --> - - <!-- Splash screen --> - <!-- Orientation-specific (portrait/landscape) data is checked first. If not available for current orientation, - then android.app.splash_screen_drawable. For best results, use together with splash_screen_sticky and - use hideSplashScreen() with a fade-out animation from Qt Android Extras to hide the splash screen when you - are done populating your window with content. --> - <!-- meta-data android:name="android.app.splash_screen_drawable_portrait" android:resource="@drawable/logo_portrait" / --> - <!-- meta-data android:name="android.app.splash_screen_drawable_landscape" android:resource="@drawable/logo_landscape" / --> - <!-- meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/logo"/ --> - <!-- meta-data android:name="android.app.splash_screen_sticky" android:value="true"/ --> - <!-- Splash screen --> - - <!-- Background running --> - <!-- Warning: changing this value to true may cause unexpected crashes if the - application still try to draw after - "applicationStateChanged(Qt::ApplicationSuspended)" - signal is sent! --> - <meta-data android:name="android.app.background_running" android:value="false"/> - <!-- Background running --> - - <!-- auto screen scale factor --> - <meta-data android:name="android.app.auto_screen_scale_factor" android:value="false"/> - <!-- auto screen scale factor --> - - <!-- extract android style --> - <!-- available android:values : - * default - In most cases this will be the same as "full", but it can also be something else if needed, e.g., for compatibility reasons - * full - useful QWidget & Quick Controls 1 apps - * minimal - useful for Quick Controls 2 apps, it is much faster than "full" - * none - useful for apps that don't use any of the above Qt modules - --> - <meta-data android:name="android.app.extract_android_style" android:value="minimal"/> - <!-- extract android style --> - </activity> - -<service android:process=":qt_service" android:name=".QtAndroidService"> - - <meta-data android:name="android.app.lib_name" android:value="service"/> - <meta-data android:name="android.app.qt_sources_resource_id" android:resource="@array/qt_sources"/> - <meta-data android:name="android.app.repository" android:value="default"/> - <meta-data android:name="android.app.qt_libs_resource_id" android:resource="@array/qt_libs"/> - <meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/> - <!-- Deploy Qt libs as part of package --> - <meta-data android:name="android.app.bundle_local_qt_libs" android:value="-- %%BUNDLE_LOCAL_QT_LIBS%% --"/> - - <!-- Run with local libs --> - <meta-data android:name="android.app.use_local_qt_libs" android:value="-- %%USE_LOCAL_QT_LIBS%% --"/> - <meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/> - <meta-data android:name="android.app.load_local_libs_resource_id" android:resource="@array/load_local_libs"/> - <meta-data android:name="android.app.load_local_jars" android:value="-- %%INSERT_LOCAL_JARS%% --"/> - <meta-data android:name="android.app.static_init_classes" android:value="-- %%INSERT_INIT_CLASSES%% --"/> - <!-- Run with local libs --> - - <!-- Background running --> - <meta-data android:name="android.app.background_running" android:value="true"/> - <!-- Background running --> - </service> - </application> -</manifest> diff --git a/examples/androidextras/services/servicebinder/android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java b/examples/androidextras/services/servicebinder/android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java deleted file mode 100644 index fdbd559..0000000 --- a/examples/androidextras/services/servicebinder/android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java +++ /dev/null @@ -1,73 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -package org.qtproject.example.qtandroidservice; - -import android.content.Context; -import android.content.Intent; -import org.qtproject.qt.android.bindings.QtService; -import android.util.Log; - -public class QtAndroidService extends QtService { - - private static final String TAG = "QtAndroidService"; - - @Override - public void onCreate() { - super.onCreate(); - Log.i(TAG, "Creating Service"); - } - - @Override - public void onDestroy() { - super.onDestroy(); - Log.i(TAG, "Destroying Service"); - } -} diff --git a/examples/androidextras/services/servicebinder/androidbinder.cpp b/examples/androidextras/services/servicebinder/androidbinder.cpp deleted file mode 100644 index 87f98b1..0000000 --- a/examples/androidextras/services/servicebinder/androidbinder.cpp +++ /dev/null @@ -1,88 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "androidbinder.h" - -#include <QDebug> - -const static char TAG[] = "Service process"; - -bool AndroidBinder::onTransact(int code, - const QAndroidParcel &data, - const QAndroidParcel &reply, - QAndroidBinder::CallType flags) -{ - qDebug() << TAG << ": onTransact(), code " << code << ", flags " << int(flags); - - switch (code) { - case 1: { - QAndroidBinder binder = data.readBinder(); - - const QString name(data.readData()); - qDebug() << TAG << ": onTransact() received name " << name; - - reply.writeVariant("Hello " + name); - } break; - default: - QAndroidBinder binder = data.readBinder(); - - qDebug() << TAG << ": onTransact() received non-name data" << data.readVariant(); - reply.writeVariant(QVariant("Cannot process this!")); - - // send back message - QAndroidParcel sendData, replyData; - sendData.writeVariant(QVariant("Send me only names!")); - binder.transact(0, sendData, &replyData); - qDebug() << TAG << ": onTransact() received " << replyData.readData(); - - break; - } - return true; -} diff --git a/examples/androidextras/services/servicebinder/androidbinder.h b/examples/androidextras/services/servicebinder/androidbinder.h deleted file mode 100644 index d53249b..0000000 --- a/examples/androidextras/services/servicebinder/androidbinder.h +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QAndroidBinder> -#include <QAndroidParcel> - -class AndroidBinder : public QAndroidBinder -{ -public: - bool onTransact(int code, - const QAndroidParcel &data, - const QAndroidParcel &reply, - QAndroidBinder::CallType flags) override; -}; diff --git a/examples/androidextras/services/servicebinder/doc/src/qtandroidextras-example-service-binder.qdoc b/examples/androidextras/services/servicebinder/doc/src/qtandroidextras-example-service-binder.qdoc deleted file mode 100644 index fb503d6..0000000 --- a/examples/androidextras/services/servicebinder/doc/src/qtandroidextras-example-service-binder.qdoc +++ /dev/null @@ -1,182 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \title Android Service with QAndroidBinder - \ingroup examples-qtandroidextras - \example services/servicebinder - \brief Demonstrates how to run an Android service in a separate process, - and how to communicate between the service process and the main process - using QAndroidBinder. - - \image androidservices.png - - This example demonstrates how to create and run an Android service in - a separate process and using a separate \c .so lib file, and then exchange - data between the two processes using \l{QAndroidBinder}. - - When clicking the \uicontrol {Send to Service} button, the name entered in the QML - view, Qt, in this case, is sent to the Android service. Then, the service - replies back with the message \c {Hello Qt} which is printed in the QML view. - - \include examples-run.qdocinc - - \section1 Create the Service - - To start a service in its own process, extend the \c QtService class for - your service. Extending \c QtService allows the service to load the necessary - Qt libraries used for Qt. - - Start by creating the Java service class. The following class extends \c QtService - and acts as your service entry point: - - \quotefromfile services/servicebinder/android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java - \skipto package - \printuntil /^\}/ - - This class can have any logic you want using Java code. However, you don't need - any logic to communicate with Qt as that will be done using \l{QAndroidBinder}. - - \section1 Manage the AndroidManifest.xml File - - To use the service, it must be declared in the \c AndroidManifest.xml - file as follows: - - \quotefromfile services/servicebinder/android/AndroidManifest.xml - \skipto <service - \printuntil </service> - - The important part of this service declaration is the \c lib_name part. - It will ensure that the service is run by the service's own lib file: - - \quotefromfile services/servicebinder/android/AndroidManifest.xml - \skipto android:value="service" - \printuntil android:value="service" - - \section1 Handle the Service Start - - Create a sub-project for the service, as follows: - - \quotefromfile services/servicebinder/service.pro - \printuntil androidbinder.cpp - - In \c androidbinder.cpp, implement a class that inherits \l{QAndroidBinder}. - This is the binder that the main application will use to connect to the service - by binding to it. \l{QAndroidBinder::onTransact()} uses a \c code integer to - differentiate between actions. Use a \c switch case or \c if conditions to - handle all expected actions that the binder could expect: - - \quotefromfile services/servicebinder/androidbinder.cpp - \skipto onTransact - \printuntil /^\}/ - - In the service's \c main(), start the \l{QAndroidBinder} along with - \l{QAndroidService}: - - \quotefromfile services/servicebinder/service_main.cpp - \skipto main - \printuntil /^\}/ - - - \section1 Handle the Application Start - - In the main application side, a \l{QAndroidServiceConnection} implementation - is required to bind to the service and exchange data with it. Implement - the functions \l{QAndroidServiceConnection::onServiceConnected()} and - \l{QAndroidServiceConnection::onServiceDisconnected()}: - - \quotefromfile services/servicebinder/qtandroidservice.cpp - \skipto onServiceConnected - \printuntil } - \printuntil } - - Then, create a function to explicitly send messages to the service: - - \quotefromfile services/servicebinder/qtandroidservice.cpp - \skipto sendToService - \printuntil } - - Once you have all that ready, it's time to start the service and bind to it - as follows: - - \quotefromfile services/servicebinder/qtandroidservice.cpp - \skipto :QtAndroidService - \printuntil } - - The \l{QtAndroid::bindService()} is called using \l{QtAndroid::AutoCreate} - which starts the service if it's not already running. - - \note To receive data explicitly sent from the service (i.e. not just a reply), - implement \l{QAndroidBinder} in the main application the same way - it's done on the service. Once you have that, the service could initially - send a message. - - Then, create an instance for the custom \l{QAndroidServiceConnection} class - and connect it to QML. Add the following in \c main.cpp: - - \quotefromfile services/servicebinder/main.cpp - \skipto QtAndroidService - \printuntil setContextProperty - - Then, add a \l Connections element to watch for the incoming messages from - the service in \c main.qml: - - \quotefromfile services/common/main.qml - \skipto Connections - \printuntil /^\ {4}\}/ - - And set the \c onClicked for the sending button to: - - \quotefromfile services/common/main.qml - \skipto onClicked - \printline onClicked - - \sa {Android Services}, {Qt for Android}, {Qt Android Extras} -*/ diff --git a/examples/androidextras/services/servicebinder/main.cpp b/examples/androidextras/services/servicebinder/main.cpp deleted file mode 100644 index 82066df..0000000 --- a/examples/androidextras/services/servicebinder/main.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qtandroidservice.h" - -#include <QGuiApplication> -#include <QQmlApplicationEngine> -#include <QQmlContext> - -int main(int argc, char *argv[]) -{ - QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); - QGuiApplication app(argc, argv); - QQmlApplicationEngine engine; - - QtAndroidService *qtAndroidService = new QtAndroidService(&app); - engine.rootContext()->setContextProperty(QLatin1String("qtAndroidService"), qtAndroidService); - - engine.load(QUrl(QLatin1String("qrc:/main.qml"))); - - return app.exec(); -} diff --git a/examples/androidextras/services/servicebinder/qtandroidservice.cpp b/examples/androidextras/services/servicebinder/qtandroidservice.cpp deleted file mode 100644 index c984746..0000000 --- a/examples/androidextras/services/servicebinder/qtandroidservice.cpp +++ /dev/null @@ -1,100 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qtandroidservice.h" - -#include <QAndroidIntent> -#include <QAndroidParcel> -#include <QDebug> - -const static char TAG[] = "Service app"; -QtAndroidService *QtAndroidService::m_instance = nullptr; - -void AndroidServiceConnection::onServiceConnected(const QString &name, - const QAndroidBinder &serviceBinder) -{ - qDebug() << TAG << ": onServiceConnected() " << name; - m_servieBinder = serviceBinder; -} - -void AndroidServiceConnection::onServiceDisconnected(const QString &name) -{ - qDebug() << TAG << ": onServiceDisconnected() " << name; -} - -void AndroidServiceConnection::sendToService(const QString &name) -{ - // send name - QAndroidParcel sendData, replyData; - sendData.writeBinder(m_servieBinder); - sendData.writeData(name.toUtf8()); - m_servieBinder.transact(1, sendData, &replyData); - const QVariant received(replyData.readVariant()); - qDebug() << received; - emit QtAndroidService::instance()->messageFromService(received.toString()); -} - -QtAndroidService::QtAndroidService(QObject *parent) : QObject(parent) -{ - m_instance = this; - - QAndroidIntent serviceIntent(QtAndroid::androidActivity(), - "org.qtproject.example.qtandroidservice.QtAndroidService"); - - const bool bindResult = QtAndroid::bindService(serviceIntent, - m_serviceConnection, - QtAndroid::BindFlag::AutoCreate); - qDebug() << "Binding to the service..." << bindResult; -} - -void QtAndroidService::sendToService(const QString &name) -{ - m_serviceConnection.sendToService(name); -} diff --git a/examples/androidextras/services/servicebinder/qtandroidservice.h b/examples/androidextras/services/servicebinder/qtandroidservice.h deleted file mode 100644 index 352f6d1..0000000 --- a/examples/androidextras/services/servicebinder/qtandroidservice.h +++ /dev/null @@ -1,83 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QAndroidBinder> -#include <QAndroidServiceConnection> -#include <QtAndroid> - -class AndroidServiceConnection : public QAndroidServiceConnection -{ -public: - void onServiceConnected(const QString &name, const QAndroidBinder &serviceBinder) override; - - void onServiceDisconnected(const QString &name) override; - - void sendToService(const QString &name); - -private: - QAndroidBinder m_servieBinder; -}; - -class QtAndroidService : public QObject -{ - Q_OBJECT - -public: - explicit QtAndroidService(QObject *parent = nullptr); - static QtAndroidService *instance() { return m_instance; } - Q_INVOKABLE void sendToService(const QString &name); - -signals: - void messageFromService(const QString &message); - -private: - static QtAndroidService *m_instance; - AndroidServiceConnection m_serviceConnection; -}; diff --git a/examples/androidextras/services/servicebinder/service.pro b/examples/androidextras/services/servicebinder/service.pro deleted file mode 100644 index 12853ff..0000000 --- a/examples/androidextras/services/servicebinder/service.pro +++ /dev/null @@ -1,13 +0,0 @@ -TEMPLATE = lib -TARGET = service -CONFIG += dll -QT += core androidextras - -HEADERS += androidbinder.h - -SOURCES += \ - service_main.cpp \ - androidbinder.cpp - -target.path = $$[QT_INSTALL_EXAMPLES]/androidextras/services/servicebinder -INSTALLS += target diff --git a/examples/androidextras/services/servicebinder/service_main.cpp b/examples/androidextras/services/servicebinder/service_main.cpp deleted file mode 100644 index 5fefa18..0000000 --- a/examples/androidextras/services/servicebinder/service_main.cpp +++ /dev/null @@ -1,65 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "androidbinder.h" - -#include <QAndroidService> -#include <QDebug> - -int main(int argc, char *argv[]) -{ - qDebug() << "Starting service process from C++"; - QAndroidService app(argc, argv, [](const QAndroidIntent &) { - qDebug() << "Android service onBind()"; - return new AndroidBinder{}; - }); - - return app.exec(); -} diff --git a/examples/androidextras/services/servicebinder/servicebinder.pro b/examples/androidextras/services/servicebinder/servicebinder.pro deleted file mode 100644 index f2eeb3c..0000000 --- a/examples/androidextras/services/servicebinder/servicebinder.pro +++ /dev/null @@ -1,5 +0,0 @@ -TEMPLATE = subdirs - -SUBDIRS += \ - servicebinderclient.pro \ - service.pro diff --git a/examples/androidextras/services/servicebinder/servicebinderclient.pro b/examples/androidextras/services/servicebinder/servicebinderclient.pro deleted file mode 100644 index 653e546..0000000 --- a/examples/androidextras/services/servicebinder/servicebinderclient.pro +++ /dev/null @@ -1,25 +0,0 @@ -QT += qml quick androidextras - -CONFIG += c++11 - -HEADERS += \ - qtandroidservice.h - -SOURCES += \ - main.cpp \ - qtandroidservice.cpp - -include(../common/common.pri) - -# Additional import path used to resolve QML modules in Qt Creator's code model -QML_IMPORT_PATH = - -target.path = $$[QT_INSTALL_EXAMPLES]/androidextras/services/servicebinder -INSTALLS += target - -ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android - -DISTFILES += \ - android/AndroidManifest.xml \ - android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java - diff --git a/examples/androidextras/services/servicebroadcast/android/AndroidManifest.xml b/examples/androidextras/services/servicebroadcast/android/AndroidManifest.xml deleted file mode 100644 index ef94a7f..0000000 --- a/examples/androidextras/services/servicebroadcast/android/AndroidManifest.xml +++ /dev/null @@ -1,106 +0,0 @@ -<?xml version="1.0"?> -<manifest package="org.qtproject.example.qtandroidservice" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="-- %%INSERT_VERSION_NAME%% --" android:versionCode="-- %%INSERT_VERSION_CODE%% --" android:installLocation="auto"> - <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28"/> - - <!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application. - Remove the comment if you do not require these default permissions. --> - <!-- %%INSERT_PERMISSIONS --> - - <!-- The following comment will be replaced upon deployment with default features based on the dependencies of the application. - Remove the comment if you do not require these default features. --> - <!-- %%INSERT_FEATURES --> - - <supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/> - - <application android:hardwareAccelerated="true" android:name="org.qtproject.qt.android.bindings.QtApplication" android:label="-- %%INSERT_APP_NAME%% --" android:extractNativeLibs="true"> - <activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density" android:name="org.qtproject.qt.android.bindings.QtActivity" android:label="-- %%INSERT_APP_NAME%% --" android:screenOrientation="unspecified" android:launchMode="singleTop"> - <intent-filter> - <action android:name="android.intent.action.MAIN"/> - <category android:name="android.intent.category.LAUNCHER"/> - </intent-filter> - - <!-- Application arguments --> - <!-- meta-data android:name="android.app.arguments" android:value="arg1 arg2 arg3"/ --> - <!-- Application arguments --> - - <meta-data android:name="android.app.lib_name" android:value="-- %%INSERT_APP_LIB_NAME%% --"/> - <meta-data android:name="android.app.qt_sources_resource_id" android:resource="@array/qt_sources"/> - <meta-data android:name="android.app.repository" android:value="default"/> - <meta-data android:name="android.app.qt_libs_resource_id" android:resource="@array/qt_libs"/> - <meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/> - <!-- Deploy Qt libs as part of package --> - <meta-data android:name="android.app.bundle_local_qt_libs" android:value="-- %%BUNDLE_LOCAL_QT_LIBS%% --"/> - - <!-- Run with local libs --> - <meta-data android:name="android.app.use_local_qt_libs" android:value="-- %%USE_LOCAL_QT_LIBS%% --"/> - <meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/> - <meta-data android:name="android.app.load_local_libs_resource_id" android:resource="@array/load_local_libs"/> - <meta-data android:name="android.app.load_local_jars" android:value="-- %%INSERT_LOCAL_JARS%% --"/> - <meta-data android:name="android.app.static_init_classes" android:value="-- %%INSERT_INIT_CLASSES%% --"/> - <!-- Used to specify custom system library path to run with local system libs --> - <!-- <meta-data android:name="android.app.system_libs_prefix" android:value="/system/lib/"/> --> - <!-- Messages maps --> - <meta-data android:value="@string/ministro_not_found_msg" android:name="android.app.ministro_not_found_msg"/> - <meta-data android:value="@string/ministro_needed_msg" android:name="android.app.ministro_needed_msg"/> - <meta-data android:value="@string/fatal_error_msg" android:name="android.app.fatal_error_msg"/> - <meta-data android:value="@string/unsupported_android_version" android:name="android.app.unsupported_android_version"/> - <!-- Messages maps --> - - <!-- Splash screen --> - <!-- Orientation-specific (portrait/landscape) data is checked first. If not available for current orientation, - then android.app.splash_screen_drawable. For best results, use together with splash_screen_sticky and - use hideSplashScreen() with a fade-out animation from Qt Android Extras to hide the splash screen when you - are done populating your window with content. --> - <!-- meta-data android:name="android.app.splash_screen_drawable_portrait" android:resource="@drawable/logo_portrait" / --> - <!-- meta-data android:name="android.app.splash_screen_drawable_landscape" android:resource="@drawable/logo_landscape" / --> - <!-- meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/logo"/ --> - <!-- meta-data android:name="android.app.splash_screen_sticky" android:value="true"/ --> - <!-- Splash screen --> - - <!-- Background running --> - <!-- Warning: changing this value to true may cause unexpected crashes if the - application still try to draw after - "applicationStateChanged(Qt::ApplicationSuspended)" - signal is sent! --> - <meta-data android:name="android.app.background_running" android:value="false"/> - <!-- Background running --> - - <!-- auto screen scale factor --> - <meta-data android:name="android.app.auto_screen_scale_factor" android:value="false"/> - <!-- auto screen scale factor --> - - <!-- extract android style --> - <!-- available android:values : - * default - In most cases this will be the same as "full", but it can also be something else if needed, e.g., for compatibility reasons - * full - useful QWidget & Quick Controls 1 apps - * minimal - useful for Quick Controls 2 apps, it is much faster than "full" - * none - useful for apps that don't use any of the above Qt modules - --> - <meta-data android:name="android.app.extract_android_style" android:value="default"/> - <!-- extract android style --> - </activity> - -<service android:process=":qt_service" android:name=".QtAndroidService"> - - <meta-data android:name="android.app.lib_name" android:value="service"/> - <meta-data android:name="android.app.qt_sources_resource_id" android:resource="@array/qt_sources"/> - <meta-data android:name="android.app.repository" android:value="default"/> - <meta-data android:name="android.app.qt_libs_resource_id" android:resource="@array/qt_libs"/> - <meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/> - <!-- Deploy Qt libs as part of package --> - <meta-data android:name="android.app.bundle_local_qt_libs" android:value="-- %%BUNDLE_LOCAL_QT_LIBS%% --"/> - - <!-- Run with local libs --> - <meta-data android:name="android.app.use_local_qt_libs" android:value="-- %%USE_LOCAL_QT_LIBS%% --"/> - <meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/> - <meta-data android:name="android.app.load_local_libs_resource_id" android:resource="@array/load_local_libs"/> - <meta-data android:name="android.app.load_local_jars" android:value="-- %%INSERT_LOCAL_JARS%% --"/> - <meta-data android:name="android.app.static_init_classes" android:value="-- %%INSERT_INIT_CLASSES%% --"/> - <!-- Run with local libs --> - - <!-- Background running --> - <meta-data android:name="android.app.background_running" android:value="true"/> - <!-- Background running --> - </service> - </application> -</manifest> diff --git a/examples/androidextras/services/servicebroadcast/android/src/org/qtproject/example/qtandroidservice/ActivityUtils.java b/examples/androidextras/services/servicebroadcast/android/src/org/qtproject/example/qtandroidservice/ActivityUtils.java deleted file mode 100644 index d2802d7..0000000 --- a/examples/androidextras/services/servicebroadcast/android/src/org/qtproject/example/qtandroidservice/ActivityUtils.java +++ /dev/null @@ -1,86 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -package org.qtproject.example.qtandroidservice; - -import android.content.Context; -import android.content.Intent; -import android.util.Log; -import android.content.BroadcastReceiver; -import android.content.IntentFilter; - -public class ActivityUtils { - - private static native void sendToQt(String message); - - private static final String TAG = "ActivityUtils"; - public static final String BROADCAST_NAME_ACTION = "org.qtproject.example.qtandroidservice.broadcast.name"; - - public void registerServiceBroadcastReceiver(Context context) { - IntentFilter intentFilter = new IntentFilter(); - intentFilter.addAction(BROADCAST_NAME_ACTION); - context.registerReceiver(serviceMessageReceiver, intentFilter); - Log.i(TAG, "Registered broadcast receiver"); - } - - private BroadcastReceiver serviceMessageReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - Log.i(TAG, "In OnReceive broadcast receiver"); - if (BROADCAST_NAME_ACTION.equals(intent.getAction())) { - String name = intent.getStringExtra("name"); - Log.i(TAG, "Service received name: " + name); - String message = "Hello " + name; - sendToQt(message); - Log.i(TAG, "Service sent back message: " + message); - } - } - }; -} diff --git a/examples/androidextras/services/servicebroadcast/android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java b/examples/androidextras/services/servicebroadcast/android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java deleted file mode 100644 index 75c01be..0000000 --- a/examples/androidextras/services/servicebroadcast/android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java +++ /dev/null @@ -1,94 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -package org.qtproject.example.qtandroidservice; - -import android.content.Context; -import android.content.Intent; -import android.util.Log; -import android.os.IBinder; -import org.qtproject.qt.android.bindings.QtService; -import android.content.IntentFilter; - -public class QtAndroidService extends QtService -{ - private static final String TAG = "QtAndroidService"; - - @Override - public void onCreate() { - super.onCreate(); - Log.i(TAG, "Creating Service"); - } - - @Override - public void onDestroy() { - super.onDestroy(); - Log.i(TAG, "Destroying Service"); - } - - @Override - public int onStartCommand(Intent intent, int flags, int startId) { - int ret = super.onStartCommand(intent, flags, startId); - - String name = new String(intent.getByteArrayExtra("name")); - Intent sendToUiIntent = new Intent(); - sendToUiIntent.setAction(ActivityUtils.BROADCAST_NAME_ACTION); - sendToUiIntent.putExtra("name", name); - Log.i(TAG, "Service sending broadcast"); - sendBroadcast(sendToUiIntent); - - return ret; - } - - @Override - public IBinder onBind(Intent intent) { - return super.onBind(intent); - } -} diff --git a/examples/androidextras/services/servicebroadcast/doc/src/qtandroidextras-example-service-broadcastreceiver.qdoc b/examples/androidextras/services/servicebroadcast/doc/src/qtandroidextras-example-service-broadcastreceiver.qdoc deleted file mode 100644 index 781f95a..0000000 --- a/examples/androidextras/services/servicebroadcast/doc/src/qtandroidextras-example-service-broadcastreceiver.qdoc +++ /dev/null @@ -1,152 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \title Android Service with BroadcastReceiver - \ingroup examples-qtandroidextras - \example services/servicebroadcast - \brief Demonstrates how to run an Android service in a separate process using - a separate .so lib file, and how to communicate with Qt using a BroadcastReceiver. - - \image androidservices.png - - This example demonstrates how to create and run an Android service in a - separate process that uses a separate \c .so lib file, and then exchange data - between QML/C++ and the Java service using a - \l{Android: BroadcastReceiver}{BroadcastReceiver}. - - When clicking the \uicontrol {Send to Service} button, the name entered in the QML - view, Qt, in this case, is sent to the Android service. Then, the service - replies back with a message \c {Hello Qt} which is printed in the QML view. - - \include examples-run.qdocinc - - \section1 Create the Service - - When running the app's process, you can extend either \c QtService or \c Service. - Extending \c QtService allows Qt to load all the necessary libraries to load - Qt components correctly and call native methods on Android. However, here - the service is running in the same process, and with the BroadcastReceiver - you don't need native calls to exchange messages with Qt, so extending either - class works. - - Start by creating the Java service class. This is a normal Android \c Service - that receives a name from QML and replies back with \c {Hello <name>}: - - \quotefromfile services/servicebroadcast/android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java - \skipto package - \printuntil /^\}/ - - In the owerwritten method - \l{Android: Service onStartCommand}{onStartCommand()}, the service receives - a name from the calling intent, then sends a broadcast to the BroadcastReceiver, - which in turn will call the native method \c {sendToQt(String message)}. For - more information on managing native calls in Qt, see - \l{Calling QML/C++ Functions from Java Code}. - - Since the service is run on a separate \c .so lib file, you must create a - sub-project for the service process which uses \l{QAndroidService}. Start - with a \c .pro file as follows: - - \quotefromfile services/servicebroadcast/service.pro - \printuntil service_main - - Then, create the file \c service_main.cpp: - - \quotefromfile services/servicebroadcast/service_main.cpp - \skipto include - \printuntil /^\}/ - - \section1 Manage the AndroidManifest.xml File - - To use the service, it must be declared in the \c AndroidManifest.xml - file: - - \quotefromfile services/servicebroadcast/android/AndroidManifest.xml - \skipto <service - \printuntil </service> - - \section1 Start the Service - - Take the following steps to set up and start the service: - - \list 1 - \li Register the native method - - \li Create the BroadcastReceiver in a custom Java class: - - \quotefromfile services/servicebroadcast/android/src/org/qtproject/example/qtandroidservice/ActivityUtils.java - \skipto package - \printuntil /^\}/ - - \li Register the BroadcastReceiver: - - \quotefromfile services/common/qtandroidservice.cpp - \skipto :registerBroadcastReceiver - \printuntil /^\}/ - - \li Call the \l{Android: Service startService}{startService()} - method, as follows: - - \quotefromfile services/common/qtandroidservice.cpp - \skipto sendToService - \printuntil /^\}/ - - This function is used to start the Service. If the service is already running, - it will only send the names without starting a new service instance. - - \li Then, you have to add the necessary \l Connections, as described in - \l{Qt JNI Messenger}{Qt JNI Messenger Example}. - - \endlist - - \sa {Android Service with BroadcastReceiver - Same Lib File}, - {Android Services}, {Qt for Android}, {Qt Android Extras} -*/ diff --git a/examples/androidextras/services/servicebroadcast/main.cpp b/examples/androidextras/services/servicebroadcast/main.cpp deleted file mode 100644 index da53bb8..0000000 --- a/examples/androidextras/services/servicebroadcast/main.cpp +++ /dev/null @@ -1,82 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qtandroidservice.h" - -#include <QAndroidService> -#include <QGuiApplication> -#include <QQmlApplicationEngine> -#include <QQmlContext> - -int main(int argc, char *argv[]) -{ - QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); - QGuiApplication app(argc, argv); - QQmlApplicationEngine engine; - - QtAndroidService *qtAndroidService = new QtAndroidService(&app); - engine.rootContext()->setContextProperty(QLatin1String("qtAndroidService"), qtAndroidService); - - const QUrl url(http://code.qt.io/QStringLiteral(%22qrc:/main.qml")); - QObject::connect( - &engine, - &QQmlApplicationEngine::objectCreated, - &app, - [url](QObject *obj, const QUrl &objUrl) { - if (!obj && url == objUrl) - QCoreApplication::exit(-1); - }, - Qt::QueuedConnection); - engine.load(url); - - qtAndroidService->sendToService("Qt"); - - return app.exec(); -} diff --git a/examples/androidextras/services/servicebroadcast/service.pro b/examples/androidextras/services/servicebroadcast/service.pro deleted file mode 100644 index 62b2c9f..0000000 --- a/examples/androidextras/services/servicebroadcast/service.pro +++ /dev/null @@ -1,10 +0,0 @@ -TEMPLATE = lib -TARGET = service -CONFIG += dll -QT += core androidextras - -SOURCES += \ - service_main.cpp - -target.path = $$[QT_INSTALL_EXAMPLES]/androidextras/services/servicebroadcast -INSTALLS += target diff --git a/examples/androidextras/services/servicebroadcast/service_main.cpp b/examples/androidextras/services/servicebroadcast/service_main.cpp deleted file mode 100644 index a7e2e24..0000000 --- a/examples/androidextras/services/servicebroadcast/service_main.cpp +++ /dev/null @@ -1,60 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QDebug> -#include <QAndroidService> - -int main(int argc, char *argv[]) -{ - qWarning() << "Service starting with BroadcastReceiver from separate .so file"; - QAndroidService app(argc, argv); - - return app.exec(); -} diff --git a/examples/androidextras/services/servicebroadcast/servicebroadcast.pro b/examples/androidextras/services/servicebroadcast/servicebroadcast.pro deleted file mode 100644 index 4ab511b..0000000 --- a/examples/androidextras/services/servicebroadcast/servicebroadcast.pro +++ /dev/null @@ -1,5 +0,0 @@ -TEMPLATE = subdirs - -SUBDIRS += \ - servicebroadcastclient.pro \ - service.pro diff --git a/examples/androidextras/services/servicebroadcast/servicebroadcastclient.pro b/examples/androidextras/services/servicebroadcast/servicebroadcastclient.pro deleted file mode 100644 index 72ceab6..0000000 --- a/examples/androidextras/services/servicebroadcast/servicebroadcastclient.pro +++ /dev/null @@ -1,21 +0,0 @@ -QT += qml quick androidextras - -CONFIG += c++11 - -SOURCES += main.cpp - -include(../common/common_broadcast.pri) -include(../common/common.pri) - -# Additional import path used to resolve QML modules in Qt Creator's code model -QML_IMPORT_PATH = - -target.path = $$[QT_INSTALL_EXAMPLES]/androidextras/services/servicebroadcast -INSTALLS += target - -ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android - -DISTFILES += \ - android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java \ - android/src/org/qtproject/example/qtandroidservice/ActivityUtils.java \ - android/AndroidManifest.xml diff --git a/examples/androidextras/services/servicebroadcastsamelib/android/AndroidManifest.xml b/examples/androidextras/services/servicebroadcastsamelib/android/AndroidManifest.xml deleted file mode 100644 index 9f9647f..0000000 --- a/examples/androidextras/services/servicebroadcastsamelib/android/AndroidManifest.xml +++ /dev/null @@ -1,110 +0,0 @@ -<?xml version="1.0"?> -<manifest package="org.qtproject.example.qtandroidservice" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="-- %%INSERT_VERSION_NAME%% --" android:versionCode="-- %%INSERT_VERSION_CODE%% --" android:installLocation="auto"> - <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28"/> - - <!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application. - Remove the comment if you do not require these default permissions. --> - <!-- %%INSERT_PERMISSIONS --> - - <!-- The following comment will be replaced upon deployment with default features based on the dependencies of the application. - Remove the comment if you do not require these default features. --> - <!-- %%INSERT_FEATURES --> - - <supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/> - - <application android:hardwareAccelerated="true" android:name="org.qtproject.qt.android.bindings.QtApplication" android:label="-- %%INSERT_APP_NAME%% --" android:extractNativeLibs="true"> - <activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density" android:name="org.qtproject.qt.android.bindings.QtActivity" android:label="-- %%INSERT_APP_NAME%% --" android:screenOrientation="unspecified" android:launchMode="singleTop"> - <intent-filter> - <action android:name="android.intent.action.MAIN"/> - <category android:name="android.intent.category.LAUNCHER"/> - </intent-filter> - - <!-- Application arguments --> - <!-- meta-data android:name="android.app.arguments" android:value="arg1 arg2 arg3"/ --> - <!-- Application arguments --> - - <meta-data android:name="android.app.lib_name" android:value="-- %%INSERT_APP_LIB_NAME%% --"/> - <meta-data android:name="android.app.qt_sources_resource_id" android:resource="@array/qt_sources"/> - <meta-data android:name="android.app.repository" android:value="default"/> - <meta-data android:name="android.app.qt_libs_resource_id" android:resource="@array/qt_libs"/> - <meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/> - <!-- Deploy Qt libs as part of package --> - <meta-data android:name="android.app.bundle_local_qt_libs" android:value="-- %%BUNDLE_LOCAL_QT_LIBS%% --"/> - - <!-- Run with local libs --> - <meta-data android:name="android.app.use_local_qt_libs" android:value="-- %%USE_LOCAL_QT_LIBS%% --"/> - <meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/> - <meta-data android:name="android.app.load_local_libs_resource_id" android:resource="@array/load_local_libs"/> - <meta-data android:name="android.app.load_local_jars" android:value="-- %%INSERT_LOCAL_JARS%% --"/> - <meta-data android:name="android.app.static_init_classes" android:value="-- %%INSERT_INIT_CLASSES%% --"/> - <!-- Used to specify custom system library path to run with local system libs --> - <!-- <meta-data android:name="android.app.system_libs_prefix" android:value="/system/lib/"/> --> - <!-- Messages maps --> - <meta-data android:value="@string/ministro_not_found_msg" android:name="android.app.ministro_not_found_msg"/> - <meta-data android:value="@string/ministro_needed_msg" android:name="android.app.ministro_needed_msg"/> - <meta-data android:value="@string/fatal_error_msg" android:name="android.app.fatal_error_msg"/> - <meta-data android:value="@string/unsupported_android_version" android:name="android.app.unsupported_android_version"/> - <!-- Messages maps --> - - <!-- Splash screen --> - <!-- Orientation-specific (portrait/landscape) data is checked first. If not available for current orientation, - then android.app.splash_screen_drawable. For best results, use together with splash_screen_sticky and - use hideSplashScreen() with a fade-out animation from Qt Android Extras to hide the splash screen when you - are done populating your window with content. --> - <!-- meta-data android:name="android.app.splash_screen_drawable_portrait" android:resource="@drawable/logo_portrait" / --> - <!-- meta-data android:name="android.app.splash_screen_drawable_landscape" android:resource="@drawable/logo_landscape" / --> - <!-- meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/logo"/ --> - <!-- meta-data android:name="android.app.splash_screen_sticky" android:value="true"/ --> - <!-- Splash screen --> - - <!-- Background running --> - <!-- Warning: changing this value to true may cause unexpected crashes if the - application still try to draw after - "applicationStateChanged(Qt::ApplicationSuspended)" - signal is sent! --> - <meta-data android:name="android.app.background_running" android:value="false"/> - <!-- Background running --> - - <!-- auto screen scale factor --> - <meta-data android:name="android.app.auto_screen_scale_factor" android:value="false"/> - <!-- auto screen scale factor --> - - <!-- extract android style --> - <!-- available android:values : - * default - In most cases this will be the same as "full", but it can also be something else if needed, e.g., for compatibility reasons - * full - useful QWidget & Quick Controls 1 apps - * minimal - useful for Quick Controls 2 apps, it is much faster than "full" - * none - useful for apps that don't use any of the above Qt modules - --> - <meta-data android:name="android.app.extract_android_style" android:value="default"/> - <!-- extract android style --> - </activity> - -<service android:process=":qt_service" android:name=".QtAndroidService"> - - <!-- Application arguments --> - <meta-data android:name="android.app.arguments" android:value="-service"/> - <!-- Application arguments --> - - <meta-data android:name="android.app.lib_name" android:value="-- %%INSERT_APP_LIB_NAME%% --"/> - <meta-data android:name="android.app.qt_sources_resource_id" android:resource="@array/qt_sources"/> - <meta-data android:name="android.app.repository" android:value="default"/> - <meta-data android:name="android.app.qt_libs_resource_id" android:resource="@array/qt_libs"/> - <meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/> - <!-- Deploy Qt libs as part of package --> - <meta-data android:name="android.app.bundle_local_qt_libs" android:value="-- %%BUNDLE_LOCAL_QT_LIBS%% --"/> - - <!-- Run with local libs --> - <meta-data android:name="android.app.use_local_qt_libs" android:value="-- %%USE_LOCAL_QT_LIBS%% --"/> - <meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/> - <meta-data android:name="android.app.load_local_libs_resource_id" android:resource="@array/load_local_libs"/> - <meta-data android:name="android.app.load_local_jars" android:value="-- %%INSERT_LOCAL_JARS%% --"/> - <meta-data android:name="android.app.static_init_classes" android:value="-- %%INSERT_INIT_CLASSES%% --"/> - <!-- Run with local libs --> - - <!-- Background running --> - <meta-data android:name="android.app.background_running" android:value="true"/> - <!-- Background running --> - </service> - </application> -</manifest> diff --git a/examples/androidextras/services/servicebroadcastsamelib/android/src/org/qtproject/example/qtandroidservice/ActivityUtils.java b/examples/androidextras/services/servicebroadcastsamelib/android/src/org/qtproject/example/qtandroidservice/ActivityUtils.java deleted file mode 100644 index d2802d7..0000000 --- a/examples/androidextras/services/servicebroadcastsamelib/android/src/org/qtproject/example/qtandroidservice/ActivityUtils.java +++ /dev/null @@ -1,86 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -package org.qtproject.example.qtandroidservice; - -import android.content.Context; -import android.content.Intent; -import android.util.Log; -import android.content.BroadcastReceiver; -import android.content.IntentFilter; - -public class ActivityUtils { - - private static native void sendToQt(String message); - - private static final String TAG = "ActivityUtils"; - public static final String BROADCAST_NAME_ACTION = "org.qtproject.example.qtandroidservice.broadcast.name"; - - public void registerServiceBroadcastReceiver(Context context) { - IntentFilter intentFilter = new IntentFilter(); - intentFilter.addAction(BROADCAST_NAME_ACTION); - context.registerReceiver(serviceMessageReceiver, intentFilter); - Log.i(TAG, "Registered broadcast receiver"); - } - - private BroadcastReceiver serviceMessageReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - Log.i(TAG, "In OnReceive broadcast receiver"); - if (BROADCAST_NAME_ACTION.equals(intent.getAction())) { - String name = intent.getStringExtra("name"); - Log.i(TAG, "Service received name: " + name); - String message = "Hello " + name; - sendToQt(message); - Log.i(TAG, "Service sent back message: " + message); - } - } - }; -} diff --git a/examples/androidextras/services/servicebroadcastsamelib/android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java b/examples/androidextras/services/servicebroadcastsamelib/android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java deleted file mode 100644 index 69ae5a6..0000000 --- a/examples/androidextras/services/servicebroadcastsamelib/android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java +++ /dev/null @@ -1,95 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -package org.qtproject.example.qtandroidservice; - -import android.content.Context; -import android.content.Intent; -import android.util.Log; -import android.os.IBinder; -import org.qtproject.qt.android.bindings.QtService; -import android.content.IntentFilter; - - -public class QtAndroidService extends QtService -{ - private static final String TAG = "QtAndroidService"; - - @Override - public void onCreate() { - super.onCreate(); - Log.i(TAG, "Creating Service"); - } - - @Override - public void onDestroy() { - super.onDestroy(); - Log.i(TAG, "Destroying Service"); - } - - @Override - public int onStartCommand(Intent intent, int flags, int startId) { - int ret = super.onStartCommand(intent, flags, startId); - - String name = new String(intent.getByteArrayExtra("name")); - Intent sendToUiIntent = new Intent(); - sendToUiIntent.setAction(ActivityUtils.BROADCAST_NAME_ACTION); - sendToUiIntent.putExtra("name", name); - Log.i(TAG, "Service sending broadcast"); - sendBroadcast(sendToUiIntent); - - return ret; - } - - @Override - public IBinder onBind(Intent intent) { - return super.onBind(intent); - } -} diff --git a/examples/androidextras/services/servicebroadcastsamelib/doc/src/qtandroidextras-example-service-broadcastreceiver-samelib.qdoc b/examples/androidextras/services/servicebroadcastsamelib/doc/src/qtandroidextras-example-service-broadcastreceiver-samelib.qdoc deleted file mode 100644 index 7f1d6b0..0000000 --- a/examples/androidextras/services/servicebroadcastsamelib/doc/src/qtandroidextras-example-service-broadcastreceiver-samelib.qdoc +++ /dev/null @@ -1,153 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \title Android Service with BroadcastReceiver - Same Lib File - \ingroup examples-qtandroidextras - \example services/servicebroadcastsamelib - \brief Demonstrates how to run an Android service in a separate process, - and how to communicate with Qt using a BroadcastReceiver. - - \image androidservices.png - - This example demonstrates how to create and run an Android service in its - own process using the same main \c .so lib file, and then exchange data - between QML/C++ and the Java service using a - \l{Android: BroadcastReceiver}{BroadcastReceiver}. - - When clicking the \uicontrol {Send to Service} button, the name entered in - the QML view, Qt, in this case, is sent to the Android service. Then, the - service replies back with a message \c {Hello Qt} which is printed in the - QML view. - - \include examples-run.qdocinc - - \section1 Create the Service - - When running the app's process, you can extend either \c QtService or \c Service. - Extending \c QtService allows Qt to load all the necessary libraries to load - Qt components correctly and call native methods on Android. However, here - the service is running in the same process, and with the BroadcastReceiver you - don't need native calls to exchange messages with Qt, so extending either - class works. - - Start by creating the Java service class. This is a normal Android \c Service - that receives a name from QML and replies back with \c {Hello <name>}: - - \quotefromfile services/servicebroadcastsamelib/android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java - \skipto package - \printuntil /^\}/ - - In the overwritten method - \l{Android: Service onStartCommand}{onStartCommand()}, - the service receives a name from the calling intent, then sends a broadcast - to the BroadcastReceiver, which in turn will call the native method - \c {sendToQt(String message)}. For more information on managing native - calls in Qt, see \l{Calling QML/C++ Functions from Java Code}. - - \section1 Manage the AndroidManifest.xml File - - To use the service, it must be declared in the \c AndroidManifest.xml - file: - - \quotefromfile services/servicebroadcastsamelib/android/AndroidManifest.xml - \skipto <service - \printuntil </service> - - \section1 Start the Service - - Since the service is run using the same \c .so lib file with different arguments - for the service, you must handle the arguments. For the main application use: - - \quotefromfile services/servicebroadcastsamelib/main.cpp - \skipto (argc - \printline (argc - - Then take the following steps: - - \list 1 - \li Register the native method - - \li Create the BroadcastReceiver in a custom Java class: - - \quotefromfile services/servicebroadcastsamelib/android/src/org/qtproject/example/qtandroidservice/ActivityUtils.java - \skipto package - \printuntil /^\}/ - - \li Register the BroadcastReceiver: - - \quotefromfile services/common/qtandroidservice.cpp - \skipto :registerBroadcastReceiver - \printuntil /^\}/ - - \li Call the \l{Android: Service startService}{startService()} - method, as follows: - - \quotefromfile services/common/qtandroidservice.cpp - \skipto sendToService - \printuntil /^\}/ - - This function is used to start the Service. If the service is already running, - it will only send the names without starting a new service instance. - - \li Then, you have to add the necessary \l Connections, as described in - \l{Qt JNI Messenger}{Qt JNI Messenger Example}. - - \endlist - - Handle the service argument as follows: - - \quotefromfile services/servicebroadcastsamelib/main.cpp - \skipto else if - \printuntil app.exec(); - - \sa {Android Service with BroadcastReceiver}, {Android Services}, - {Qt for Android}, {Qt Android Extras} -*/ diff --git a/examples/androidextras/services/servicebroadcastsamelib/main.cpp b/examples/androidextras/services/servicebroadcastsamelib/main.cpp deleted file mode 100644 index 15dfa93..0000000 --- a/examples/androidextras/services/servicebroadcastsamelib/main.cpp +++ /dev/null @@ -1,90 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qtandroidservice.h" - -#include <QAndroidService> -#include <QGuiApplication> -#include <QQmlApplicationEngine> -#include <QQmlContext> - -int main(int argc, char *argv[]) -{ - if (argc <= 1) { - QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); - QGuiApplication app(argc, argv); - QQmlApplicationEngine engine; - - QtAndroidService *qtAndroidService = new QtAndroidService(&app); - engine.rootContext()->setContextProperty(QLatin1String("qtAndroidService"), qtAndroidService); - - const QUrl url(http://code.qt.io/QStringLiteral(%22qrc:/main.qml")); - QObject::connect(&engine, &QQmlApplicationEngine::objectCreated, - &app, [url](QObject *obj, const QUrl &objUrl) { - if (!obj && url == objUrl) - QCoreApplication::exit(-1); - }, Qt::QueuedConnection); - engine.load(url); - - qtAndroidService->sendToService("Qt"); - - return app.exec(); - - } else if (argc > 1 && strcmp(argv[1], "-service") == 0) { - qWarning() << "Service starting with BroadcastReceiver from same .so file"; - QAndroidService app(argc, argv); - - return app.exec(); - - } else { - qWarning() << "Unrecognized command line argument"; - return -1; - } -} diff --git a/examples/androidextras/services/servicebroadcastsamelib/servicebroadcastsamelib.pro b/examples/androidextras/services/servicebroadcastsamelib/servicebroadcastsamelib.pro deleted file mode 100644 index dce9afe..0000000 --- a/examples/androidextras/services/servicebroadcastsamelib/servicebroadcastsamelib.pro +++ /dev/null @@ -1,21 +0,0 @@ -QT += qml quick androidextras - -CONFIG += c++11 - -SOURCES += main.cpp - -include(../common/common_broadcast.pri) -include(../common/common.pri) - -# Additional import path used to resolve QML modules in Qt Creator's code model -QML_IMPORT_PATH = - -target.path = $$[QT_INSTALL_EXAMPLES]/androidextras/services/servicebroadcastsamelib -INSTALLS += target - -ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android - -DISTFILES += \ - android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java \ - android/src/org/qtproject/example/qtandroidservice/ActivityUtils.java \ - android/AndroidManifest.xml diff --git a/examples/androidextras/services/serviceremoteobjects/android/AndroidManifest.xml b/examples/androidextras/services/serviceremoteobjects/android/AndroidManifest.xml deleted file mode 100644 index 5ed4f31..0000000 --- a/examples/androidextras/services/serviceremoteobjects/android/AndroidManifest.xml +++ /dev/null @@ -1,106 +0,0 @@ -<?xml version="1.0"?> -<manifest package="org.qtproject.example.qtandroidservice" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="-- %%INSERT_VERSION_NAME%% --" android:versionCode="-- %%INSERT_VERSION_CODE%% --" android:installLocation="auto"> - <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28"/> - - <!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application. - Remove the comment if you do not require these default permissions. --> - <!-- %%INSERT_PERMISSIONS --> - - <!-- The following comment will be replaced upon deployment with default features based on the dependencies of the application. - Remove the comment if you do not require these default features. --> - <!-- %%INSERT_FEATURES --> - - <supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/> - - <application android:hardwareAccelerated="true" android:name="org.qtproject.qt.android.bindings.QtApplication" android:label="-- %%INSERT_APP_NAME%% --" android:extractNativeLibs="true"> - <activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density" android:name="org.qtproject.qt.android.bindings.QtActivity" android:label="-- %%INSERT_APP_NAME%% --" android:screenOrientation="unspecified" android:launchMode="singleTop"> - <intent-filter> - <action android:name="android.intent.action.MAIN"/> - <category android:name="android.intent.category.LAUNCHER"/> - </intent-filter> - - <!-- Application arguments --> - <!-- meta-data android:name="android.app.arguments" android:value="arg1 arg2 arg3"/ --> - <!-- Application arguments --> - - <meta-data android:name="android.app.lib_name" android:value="-- %%INSERT_APP_LIB_NAME%% --"/> - <meta-data android:name="android.app.qt_sources_resource_id" android:resource="@array/qt_sources"/> - <meta-data android:name="android.app.repository" android:value="default"/> - <meta-data android:name="android.app.qt_libs_resource_id" android:resource="@array/qt_libs"/> - <meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/> - <!-- Deploy Qt libs as part of package --> - <meta-data android:name="android.app.bundle_local_qt_libs" android:value="-- %%BUNDLE_LOCAL_QT_LIBS%% --"/> - - <!-- Run with local libs --> - <meta-data android:name="android.app.use_local_qt_libs" android:value="-- %%USE_LOCAL_QT_LIBS%% --"/> - <meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/> - <meta-data android:name="android.app.load_local_libs_resource_id" android:resource="@array/load_local_libs"/> - <meta-data android:name="android.app.load_local_jars" android:value="-- %%INSERT_LOCAL_JARS%% --"/> - <meta-data android:name="android.app.static_init_classes" android:value="-- %%INSERT_INIT_CLASSES%% --"/> - <!-- Used to specify custom system library path to run with local system libs --> - <!-- <meta-data android:name="android.app.system_libs_prefix" android:value="/system/lib/"/> --> - <!-- Messages maps --> - <meta-data android:value="@string/ministro_not_found_msg" android:name="android.app.ministro_not_found_msg"/> - <meta-data android:value="@string/ministro_needed_msg" android:name="android.app.ministro_needed_msg"/> - <meta-data android:value="@string/fatal_error_msg" android:name="android.app.fatal_error_msg"/> - <meta-data android:value="@string/unsupported_android_version" android:name="android.app.unsupported_android_version"/> - <!-- Messages maps --> - - <!-- Splash screen --> - <!-- Orientation-specific (portrait/landscape) data is checked first. If not available for current orientation, - then android.app.splash_screen_drawable. For best results, use together with splash_screen_sticky and - use hideSplashScreen() with a fade-out animation from Qt Android Extras to hide the splash screen when you - are done populating your window with content. --> - <!-- meta-data android:name="android.app.splash_screen_drawable_portrait" android:resource="@drawable/logo_portrait" / --> - <!-- meta-data android:name="android.app.splash_screen_drawable_landscape" android:resource="@drawable/logo_landscape" / --> - <!-- meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/logo"/ --> - <!-- meta-data android:name="android.app.splash_screen_sticky" android:value="true"/ --> - <!-- Splash screen --> - - <!-- Background running --> - <!-- Warning: changing this value to true may cause unexpected crashes if the - application still try to draw after - "applicationStateChanged(Qt::ApplicationSuspended)" - signal is sent! --> - <meta-data android:name="android.app.background_running" android:value="false"/> - <!-- Background running --> - - <!-- auto screen scale factor --> - <meta-data android:name="android.app.auto_screen_scale_factor" android:value="false"/> - <!-- auto screen scale factor --> - - <!-- extract android style --> - <!-- available android:values : - * default - In most cases this will be the same as "full", but it can also be something else if needed, e.g., for compatibility reasons - * full - useful QWidget & Quick Controls 1 apps - * minimal - useful for Quick Controls 2 apps, it is much faster than "full" - * none - useful for apps that don't use any of the above Qt modules - --> - <meta-data android:name="android.app.extract_android_style" android:value="default"/> - <!-- extract android style --> - </activity> - - <service android:process=":qt_service" android:name=".QtAndroidService"> - - <meta-data android:name="android.app.lib_name" android:value="service"/> - <meta-data android:name="android.app.qt_sources_resource_id" android:resource="@array/qt_sources"/> - <meta-data android:name="android.app.repository" android:value="default"/> - <meta-data android:name="android.app.qt_libs_resource_id" android:resource="@array/qt_libs"/> - <meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/> - <!-- Deploy Qt libs as part of package --> - <meta-data android:name="android.app.bundle_local_qt_libs" android:value="-- %%BUNDLE_LOCAL_QT_LIBS%% --"/> - - <!-- Run with local libs --> - <meta-data android:name="android.app.use_local_qt_libs" android:value="-- %%USE_LOCAL_QT_LIBS%% --"/> - <meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/> - <meta-data android:name="android.app.load_local_libs_resource_id" android:resource="@array/load_local_libs"/> - <meta-data android:name="android.app.load_local_jars" android:value="-- %%INSERT_LOCAL_JARS%% --"/> - <meta-data android:name="android.app.static_init_classes" android:value="-- %%INSERT_INIT_CLASSES%% --"/> - <!-- Run with local libs --> - - <!-- Background running --> - <meta-data android:name="android.app.background_running" android:value="true"/> - <!-- Background running --> - </service> - </application> -</manifest> diff --git a/examples/androidextras/services/serviceremoteobjects/android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java b/examples/androidextras/services/serviceremoteobjects/android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java deleted file mode 100644 index 791b319..0000000 --- a/examples/androidextras/services/serviceremoteobjects/android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java +++ /dev/null @@ -1,72 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -package org.qtproject.example.qtandroidservice; - -import android.content.Context; -import android.content.Intent; -import org.qtproject.qt.android.bindings.QtService; -import android.util.Log; - -public class QtAndroidService extends QtService { - - private static final String TAG = "QtAndroidService"; - - @Override - public void onCreate() { - super.onCreate(); - Log.i(TAG, "Creating Service"); - } - - @Override - public void onDestroy() { - super.onDestroy(); - Log.i(TAG, "Destroying Service"); - } -} diff --git a/examples/androidextras/services/serviceremoteobjects/doc/src/qtandroidextras-example-service-remoteobjects.qdoc b/examples/androidextras/services/serviceremoteobjects/doc/src/qtandroidextras-example-service-remoteobjects.qdoc deleted file mode 100644 index 667f31b..0000000 --- a/examples/androidextras/services/serviceremoteobjects/doc/src/qtandroidextras-example-service-remoteobjects.qdoc +++ /dev/null @@ -1,183 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \title Android Service with Qt Remote Objects - \ingroup examples-qtandroidextras - \example services/serviceremoteobjects - \brief Demonstrates how to run an Android service in a separate process, - and how to communicate between the service process and the main process - using Qt Remote Objects. - - \image androidservices.png - - This example demonstrates how to create and run an Android service in - a separate process from the main application process, and then exchange data - between QML/C++ and the Java service using \l{Qt Remote Objects}. - - When clicking the \uicontrol {Send to Service} button, the name entered in the QML - view, Qt, in this case, is sent to the Android service. Then, the service - replies back with a message \c {Hello Qt} which is printed in the QML view. - - \include examples-run.qdocinc - - \section1 Create the Service - - To start a service in its own process, extend the \c QtService class for - your service. Extending \c QtService allows the service to load the necessary - Qt libraries used for Qt, like \l{Qt Remote Objects} libraries. - - Start by creating the Java service class. The following class extends \c QtService - and acts as your service entry point: - - \quotefromfile services/serviceremoteobjects/android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java - \skipto package - \printuntil /^\}/ - - This class can have any logic you want using Java code. However, you don't need - any logic to communicate with Qt as that will be done using Qt Remote Objects. - - \section1 Manage the AndroidManifest.xml File - - To use the service, it must be declared in the \c AndroidManifest.xml - file as follows: - - \quotefromfile services/serviceremoteobjects/android/AndroidManifest.xml - \skipto <service - \printuntil </service> - - The important part of this service declaration is the \c lib_name part. - It will ensure that the service is run by the service's own lib file: - - \quotefromfile services/serviceremoteobjects/android/AndroidManifest.xml - \skipto android:value="service" - \printuntil android:value="service" - - \section1 Handle the Application Start - - To start the service, call the following function from the application's - \c main(): - - \quotefromfile services/serviceremoteobjects/main.cpp - \skipto startService - \printuntil /^\}/ - - \section1 Handle the Service Start - - \l{QAndroidService} is used to create the service process. For the service - to start from its own \c .so lib file, create a sub-project with the following - \c .pro file: - - \quotefromfile services/serviceremoteobjects/service.pro - \printuntil CONFIG - - \section1 Communication with Qt Remote Objects - - To use \l{Qt Remote Objects}, define a \c .rep file: - - \quotefromfile services/common/qtandroidservice.rep - \skipto class - \printuntil /^\}/ - - Define the \c .rep source file in the service project \c .pro: - - \quotefromfile services/serviceremoteobjects/service.pro - \skipto REPC_SOURCE - \printline REPC_SOURCE - - And in the application's \c .pro file: - - \quotefromfile services/serviceremoteobjects/serviceremoteobjectsclient.pro - \skipto REPC_REPLICA - \printline REPC_REPLICA - - Then define the class used by Qt Remote Objects, which has a - \c sendToService() slot and a \c messageFromService() signal: - - \quotefromfile services/common/qtandroidservice_ro.h - \skipto include - \printuntil /^\};/ - - Include the class in the previous snippet in \c main.cpp: - - \quotefromfile services/serviceremoteobjects/main.cpp - \skipto _replica.h - \printline _replica.h - - Now, in the service's \c service_main.cpp, create the \l{QRemoteObjectHost} - node and start \l{QAndroidService}: - - \quotefromfile services/serviceremoteobjects/service_main.cpp - \skipto include - \printuntil /^\}/ - - In the application's \c main.cpp, create the client node and connect it - to the source node created in the service and connect it to the QML view: - - \quotefromfile services/serviceremoteobjects/main.cpp - \skipto QRemoteObjectNode - \printuntil sendToService - - Then, add a \l Connections element to watch for the incoming messages from - the service: - - \quotefromfile services/common/main.qml - \skipto Connections - \printuntil /^\ {4}\}/ - - And set the \c onClicked for the sending button to: - - \quotefromfile services/common/main.qml - \skipto onClicked - \printline onClicked - - \sa {Android Service with Qt Remote Objects - Same Lib File}, - {Android Services}, {Qt for Android}, {Qt Android Extras} -*/ diff --git a/examples/androidextras/services/serviceremoteobjects/main.cpp b/examples/androidextras/services/serviceremoteobjects/main.cpp deleted file mode 100644 index b54460a..0000000 --- a/examples/androidextras/services/serviceremoteobjects/main.cpp +++ /dev/null @@ -1,91 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#include "rep_qtandroidservice_replica.h" - -#include <QAndroidIntent> -#include <QtAndroid> - -#include <QGuiApplication> -#include <QQmlApplicationEngine> -#include <QQmlContext> - -void startService() -{ - QAndroidIntent serviceIntent(QtAndroid::androidActivity().object(), - "org/qtproject/example/qtandroidservice/QtAndroidService"); - QAndroidJniObject result = QtAndroid::androidActivity().callObjectMethod( - "startService", - "(Landroid/content/Intent;)Landroid/content/ComponentName;", - serviceIntent.handle().object()); -} - -int main(int argc, char *argv[]) -{ - QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); - QGuiApplication app(argc, argv); - QQmlApplicationEngine engine; - - startService(); - - QRemoteObjectNode repNode; - repNode.connectToNode(QUrl(QStringLiteral("local:replica"))); - QSharedPointer<QtAndroidServiceReplica> rep(repNode.acquire<QtAndroidServiceReplica>()); - engine.rootContext()->setContextProperty("qtAndroidService", rep.data()); - bool res = rep->waitForSource(); - Q_ASSERT(res); - rep->sendToService("Qt"); - - QObject::connect(rep.data(), &QtAndroidServiceReplica::messageFromService, [](const QString &message){ - qDebug() << "Service sent: " << message; - }); - engine.load(QUrl(QLatin1String("qrc:/main.qml"))); - - return app.exec(); -} diff --git a/examples/androidextras/services/serviceremoteobjects/service.pro b/examples/androidextras/services/serviceremoteobjects/service.pro deleted file mode 100644 index 09a0aaa..0000000 --- a/examples/androidextras/services/serviceremoteobjects/service.pro +++ /dev/null @@ -1,13 +0,0 @@ -TEMPLATE = lib -TARGET = service -CONFIG += dll -QT += core androidextras remoteobjects - -SOURCES += service_main.cpp - -include(../common/common_ro.pri) - -REPC_SOURCE += ../common/qtandroidservice.rep - -target.path = $$[QT_INSTALL_EXAMPLES]/androidextras/services/serviceremoteobjects -INSTALLS += target diff --git a/examples/androidextras/services/serviceremoteobjects/service_main.cpp b/examples/androidextras/services/serviceremoteobjects/service_main.cpp deleted file mode 100644 index dc1ec35..0000000 --- a/examples/androidextras/services/serviceremoteobjects/service_main.cpp +++ /dev/null @@ -1,65 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#include "qtandroidservice_ro.h" - -#include <QDebug> -#include <QAndroidService> - -int main(int argc, char *argv[]) -{ - qWarning() << "QtAndroidService starting from separate .so"; - QAndroidService app(argc, argv); - - QRemoteObjectHost srcNode(QUrl(QStringLiteral("local:replica"))); - QtAndroidService qtAndroidService; - srcNode.enableRemoting(&qtAndroidService); - - return app.exec(); -} diff --git a/examples/androidextras/services/serviceremoteobjects/serviceremoteobjects.pro b/examples/androidextras/services/serviceremoteobjects/serviceremoteobjects.pro deleted file mode 100644 index 8b8b6e0..0000000 --- a/examples/androidextras/services/serviceremoteobjects/serviceremoteobjects.pro +++ /dev/null @@ -1,5 +0,0 @@ -TEMPLATE = subdirs - -SUBDIRS += \ - serviceremoteobjectsclient.pro \ - service.pro diff --git a/examples/androidextras/services/serviceremoteobjects/serviceremoteobjectsclient.pro b/examples/androidextras/services/serviceremoteobjects/serviceremoteobjectsclient.pro deleted file mode 100644 index 75f5a2f..0000000 --- a/examples/androidextras/services/serviceremoteobjects/serviceremoteobjectsclient.pro +++ /dev/null @@ -1,21 +0,0 @@ -QT += qml quick androidextras remoteobjects - -CONFIG += c++11 - -SOURCES += main.cpp - -include(../common/common.pri) - -REPC_REPLICA += ../common/qtandroidservice.rep - -# Additional import path used to resolve QML modules in Qt Creator's code model -QML_IMPORT_PATH = - -target.path = $$[QT_INSTALL_EXAMPLES]/androidextras/services/serviceremoteobjects -INSTALLS += target - -ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android - -DISTFILES += \ - android/AndroidManifest.xml \ - android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java diff --git a/examples/androidextras/services/serviceremoteobjectssamelib/android/AndroidManifest.xml b/examples/androidextras/services/serviceremoteobjectssamelib/android/AndroidManifest.xml deleted file mode 100644 index 190891f..0000000 --- a/examples/androidextras/services/serviceremoteobjectssamelib/android/AndroidManifest.xml +++ /dev/null @@ -1,110 +0,0 @@ -<?xml version="1.0"?> -<manifest package="org.qtproject.example.qtandroidservice" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="-- %%INSERT_VERSION_NAME%% --" android:versionCode="-- %%INSERT_VERSION_CODE%% --" android:installLocation="auto"> - <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28"/> - - <!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application. - Remove the comment if you do not require these default permissions. --> - <!-- %%INSERT_PERMISSIONS --> - - <!-- The following comment will be replaced upon deployment with default features based on the dependencies of the application. - Remove the comment if you do not require these default features. --> - <!-- %%INSERT_FEATURES --> - - <supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/> - - <application android:hardwareAccelerated="true" android:name="org.qtproject.qt.android.bindings.QtApplication" android:label="-- %%INSERT_APP_NAME%% --" android:extractNativeLibs="true"> - <activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density" android:name="org.qtproject.qt.android.bindings.QtActivity" android:label="-- %%INSERT_APP_NAME%% --" android:screenOrientation="unspecified" android:launchMode="singleTop"> - <intent-filter> - <action android:name="android.intent.action.MAIN"/> - <category android:name="android.intent.category.LAUNCHER"/> - </intent-filter> - - <!-- Application arguments --> - <!-- meta-data android:name="android.app.arguments" android:value="arg1 arg2 arg3"/ --> - <!-- Application arguments --> - - <meta-data android:name="android.app.lib_name" android:value="-- %%INSERT_APP_LIB_NAME%% --"/> - <meta-data android:name="android.app.qt_sources_resource_id" android:resource="@array/qt_sources"/> - <meta-data android:name="android.app.repository" android:value="default"/> - <meta-data android:name="android.app.qt_libs_resource_id" android:resource="@array/qt_libs"/> - <meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/> - <!-- Deploy Qt libs as part of package --> - <meta-data android:name="android.app.bundle_local_qt_libs" android:value="-- %%BUNDLE_LOCAL_QT_LIBS%% --"/> - - <!-- Run with local libs --> - <meta-data android:name="android.app.use_local_qt_libs" android:value="-- %%USE_LOCAL_QT_LIBS%% --"/> - <meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/> - <meta-data android:name="android.app.load_local_libs_resource_id" android:resource="@array/load_local_libs"/> - <meta-data android:name="android.app.load_local_jars" android:value="-- %%INSERT_LOCAL_JARS%% --"/> - <meta-data android:name="android.app.static_init_classes" android:value="-- %%INSERT_INIT_CLASSES%% --"/> - <!-- Used to specify custom system library path to run with local system libs --> - <!-- <meta-data android:name="android.app.system_libs_prefix" android:value="/system/lib/"/> --> - <!-- Messages maps --> - <meta-data android:value="@string/ministro_not_found_msg" android:name="android.app.ministro_not_found_msg"/> - <meta-data android:value="@string/ministro_needed_msg" android:name="android.app.ministro_needed_msg"/> - <meta-data android:value="@string/fatal_error_msg" android:name="android.app.fatal_error_msg"/> - <meta-data android:value="@string/unsupported_android_version" android:name="android.app.unsupported_android_version"/> - <!-- Messages maps --> - - <!-- Splash screen --> - <!-- Orientation-specific (portrait/landscape) data is checked first. If not available for current orientation, - then android.app.splash_screen_drawable. For best results, use together with splash_screen_sticky and - use hideSplashScreen() with a fade-out animation from Qt Android Extras to hide the splash screen when you - are done populating your window with content. --> - <!-- meta-data android:name="android.app.splash_screen_drawable_portrait" android:resource="@drawable/logo_portrait" / --> - <!-- meta-data android:name="android.app.splash_screen_drawable_landscape" android:resource="@drawable/logo_landscape" / --> - <!-- meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/logo"/ --> - <!-- meta-data android:name="android.app.splash_screen_sticky" android:value="true"/ --> - <!-- Splash screen --> - - <!-- Background running --> - <!-- Warning: changing this value to true may cause unexpected crashes if the - application still try to draw after - "applicationStateChanged(Qt::ApplicationSuspended)" - signal is sent! --> - <meta-data android:name="android.app.background_running" android:value="false"/> - <!-- Background running --> - - <!-- auto screen scale factor --> - <meta-data android:name="android.app.auto_screen_scale_factor" android:value="false"/> - <!-- auto screen scale factor --> - - <!-- extract android style --> - <!-- available android:values : - * default - In most cases this will be the same as "full", but it can also be something else if needed, e.g., for compatibility reasons - * full - useful QWidget & Quick Controls 1 apps - * minimal - useful for Quick Controls 2 apps, it is much faster than "full" - * none - useful for apps that don't use any of the above Qt modules - --> - <meta-data android:name="android.app.extract_android_style" android:value="default"/> - <!-- extract android style --> - </activity> - - <service android:process=":qt_service" android:name=".QtAndroidService"> - - <!-- Application arguments --> - <meta-data android:name="android.app.arguments" android:value="-service"/> - <!-- Application arguments --> - - <meta-data android:name="android.app.lib_name" android:value="-- %%INSERT_APP_LIB_NAME%% --"/> - <meta-data android:name="android.app.qt_sources_resource_id" android:resource="@array/qt_sources"/> - <meta-data android:name="android.app.repository" android:value="default"/> - <meta-data android:name="android.app.qt_libs_resource_id" android:resource="@array/qt_libs"/> - <meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/> - <!-- Deploy Qt libs as part of package --> - <meta-data android:name="android.app.bundle_local_qt_libs" android:value="-- %%BUNDLE_LOCAL_QT_LIBS%% --"/> - - <!-- Run with local libs --> - <meta-data android:name="android.app.use_local_qt_libs" android:value="-- %%USE_LOCAL_QT_LIBS%% --"/> - <meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/> - <meta-data android:name="android.app.load_local_libs_resource_id" android:resource="@array/load_local_libs"/> - <meta-data android:name="android.app.load_local_jars" android:value="-- %%INSERT_LOCAL_JARS%% --"/> - <meta-data android:name="android.app.static_init_classes" android:value="-- %%INSERT_INIT_CLASSES%% --"/> - <!-- Run with local libs --> - - <!-- Background running --> - <meta-data android:name="android.app.background_running" android:value="true"/> - <!-- Background running --> - </service> - </application> -</manifest> diff --git a/examples/androidextras/services/serviceremoteobjectssamelib/android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java b/examples/androidextras/services/serviceremoteobjectssamelib/android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java deleted file mode 100644 index fd3bd82..0000000 --- a/examples/androidextras/services/serviceremoteobjectssamelib/android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java +++ /dev/null @@ -1,72 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -package org.qtproject.example.qtandroidservice; - -import android.content.Context; -import android.content.Intent; -import org.qtproject.qt.android.bindings.QtService; -import android.util.Log; - -public class QtAndroidService extends QtService -{ - private static final String TAG = "QtAndroidService"; - - @Override - public void onCreate() { - Log.i(TAG, "Creating Service"); - super.onCreate(); - } - - @Override - public void onDestroy() { - Log.i(TAG, "Destroying Service"); - super.onDestroy(); - } -} diff --git a/examples/androidextras/services/serviceremoteobjectssamelib/doc/src/qtandroidextras-example-service-remoteobjects-samelib.qdoc b/examples/androidextras/services/serviceremoteobjectssamelib/doc/src/qtandroidextras-example-service-remoteobjects-samelib.qdoc deleted file mode 100644 index 91feaeb..0000000 --- a/examples/androidextras/services/serviceremoteobjectssamelib/doc/src/qtandroidextras-example-service-remoteobjects-samelib.qdoc +++ /dev/null @@ -1,189 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \target android service with remote object in same lib - \title Android Service with Qt Remote Objects - Same Lib File - \ingroup examples-qtandroidextras - \example services/serviceremoteobjectssamelib - \brief Demonstrates how to run an Android service in a separate process using - the same lib file, and how to communicate between the service process - and the main process using Qt Remote Objects. - - \image androidservices.png - - This example demonstrates how to create and run an Android service in - a separate process from the main application process, and then exchange data - between QML/C++ and the Java service using \l{Qt Remote Objects}. - - When clicking the \uicontrol {Send to Service} button, the name entered in the QML - view, Qt, in this case, is sent to the Android service. Then, the service - replies back with a message \c {Hello Qt} which is printed in the QML view. - - \include examples-run.qdocinc - - \section1 Create the Service - - To start a service in its own process, you can extend the \c QtService class - for your service. Extending \c QtService allows the service to load the - necessary Qt libraries used for Qt, like \l{Qt Remote Objects} libraries. - - Start by creating the Java service class. The following class extends \c QtService - and acts as your service entry point: - - \quotefromfile services/serviceremoteobjectssamelib/android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java - \skipto package - \printuntil /^\}/ - - This class can have any logic you want using Java code. However, you don't need - any logic to communicate with Qt as that will be done using Qt Remote Objects. - - \section1 Manage the AndroidManifest.xml File - - To be able to use the service, it must be declared in the \c AndroidManifest.xml - file as follows: - - \quotefromfile services/serviceremoteobjectssamelib/android/AndroidManifest.xml - \skipto <service - \printuntil </service> - - The important parts of this service declaration are the \c arguments and \c lib_name - parts. Those will ensure that the service is run by executing the lib file - of the main activity with the argument \c -service: - - \quotefromfile services/serviceremoteobjectssamelib/android/AndroidManifest.xml - \skipto <service - \skipto <!-- Application arguments --> - \printuntil lib_name - - \section1 Handle the Application Start - - Since the same \c .so lib file is being used for the application and the - service, you need to handle both scenarios in the \c main() function. No - arguments are provided to start the main application, and therefore you must - add the following in the \c main() function: - - \quotefromfile services/serviceremoteobjectssamelib/main.cpp - \skipto (argc - \printline (argc - - Then calling the following function starts the service: - - \quotefromfile services/serviceremoteobjectssamelib/main.cpp - \skipto startService - \printuntil /^\}/ - - \section1 Handle the Service Start - - \l{QAndroidService} is used to create the service process. The main .so lib - file will be called with an argument to start the service if you add the - following code: - - \quotefromfile services/serviceremoteobjectssamelib/main.cpp - \skipto else if - \printline else if - - \section1 Communication with Qt Remote Objects - - To use \l{Qt Remote Objects}, define a \c .rep file: - - \quotefromfile services/common/qtandroidservice.rep - \skipto class - \printuntil /^\}/ - - Define the \c .rep source and replica file in your project \c .pro file as follows: - - \quotefromfile services/serviceremoteobjectssamelib/serviceremoteobjectssamelib.pro - \skipto REPC_SOURCE - \printuntil REPC_REPLICA - - Then define the class used by Qt Remote Objects, which has a - \c sendToService() slot and a \c messageFromService() signal: - - \quotefromfile services/common/qtandroidservice_ro.h - \skipto include - \printuntil /^\};/ - - Include the class in the previous snippet in \c main.cpp: - - \quotefromfile services/serviceremoteobjectssamelib/main.cpp - \skipto _replica.h - \printline _replica.h - - Now, inside the service handling part, create the \l{QRemoteObjectHost} - node: - - \quotefromfile services/serviceremoteobjectssamelib/main.cpp - \skipto QRemoteObjectHost - \printuntil enableRemoting - - Then, in the application handling part, create the client node and connect it - to the source node created in the service and connect it to the QML view: - - \quotefromfile services/serviceremoteobjectssamelib/main.cpp - \skipto QRemoteObjectNode - \printuntil sendToService - - Then, add a \l Connections element to watch for the incoming messages from - the service: - - \quotefromfile services/common/main.qml - \skipto Connections - \printuntil /^\ {4}\}/ - - And set the \c onClicked for the sending button to: - - \quotefromfile services/common/main.qml - \skipto onClicked - \printline onClicked - - \sa {Android Service with Qt Remote Objects}, {Android Services}, - {Qt for Android}, {Qt Android Extras} -*/ diff --git a/examples/androidextras/services/serviceremoteobjectssamelib/main.cpp b/examples/androidextras/services/serviceremoteobjectssamelib/main.cpp deleted file mode 100644 index 8f85cbd..0000000 --- a/examples/androidextras/services/serviceremoteobjectssamelib/main.cpp +++ /dev/null @@ -1,106 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#include "rep_qtandroidservice_replica.h" -#include "qtandroidservice_ro.h" - -#include <QAndroidIntent> -#include <QtAndroid> -#include <QAndroidService> - -#include <QGuiApplication> -#include <QQmlApplicationEngine> -#include <QQmlContext> - -void startService() -{ - QAndroidIntent serviceIntent(QtAndroid::androidActivity().object(), - "org/qtproject/example/qtandroidservice/QtAndroidService"); - QAndroidJniObject result = QtAndroid::androidActivity().callObjectMethod( - "startService", - "(Landroid/content/Intent;)Landroid/content/ComponentName;", - serviceIntent.handle().object()); -} - -int main(int argc, char *argv[]) -{ - if (argc <= 1) { - QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); - QGuiApplication app(argc, argv); - QQmlApplicationEngine engine; - - startService(); - - QRemoteObjectNode repNode; - repNode.connectToNode(QUrl(QStringLiteral("local:replica"))); - QSharedPointer<QtAndroidServiceReplica> rep(repNode.acquire<QtAndroidServiceReplica>()); - engine.rootContext()->setContextProperty("qtAndroidService", rep.data()); - bool res = rep->waitForSource(); - Q_ASSERT(res); - rep->sendToService("Qt"); - - engine.load(QUrl(QLatin1String("qrc:/main.qml"))); - - return app.exec(); - - } else if (argc > 1 && strcmp(argv[1], "-service") == 0) { - qWarning() << "QtAndroidService starting from same .so"; - QAndroidService app(argc, argv); - - QRemoteObjectHost srcNode(QUrl(QStringLiteral("local:replica"))); - QtAndroidService qtAndroidService; - srcNode.enableRemoting(&qtAndroidService); - - return app.exec(); - - } else { - qWarning() << "Unrecognized command line argument"; - return -1; - } -} diff --git a/examples/androidextras/services/serviceremoteobjectssamelib/serviceremoteobjectssamelib.pro b/examples/androidextras/services/serviceremoteobjectssamelib/serviceremoteobjectssamelib.pro deleted file mode 100644 index 3975a19..0000000 --- a/examples/androidextras/services/serviceremoteobjectssamelib/serviceremoteobjectssamelib.pro +++ /dev/null @@ -1,23 +0,0 @@ -QT += qml quick androidextras remoteobjects - -CONFIG += c++11 - -SOURCES += main.cpp - -include(../common/common_ro.pri) -include(../common/common.pri) - -REPC_SOURCE += ../common/qtandroidservice.rep -REPC_REPLICA += ../common/qtandroidservice.rep - -# Additional import path used to resolve QML modules in Qt Creator's code model -QML_IMPORT_PATH = - -target.path = $$[QT_INSTALL_EXAMPLES]/androidextras/services/serviceremoteobjectssamelib -INSTALLS += target - -ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android - -DISTFILES += \ - android/AndroidManifest.xml \ - android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java diff --git a/examples/androidextras/services/services.pro b/examples/androidextras/services/services.pro deleted file mode 100644 index 0d567d6..0000000 --- a/examples/androidextras/services/services.pro +++ /dev/null @@ -1,13 +0,0 @@ -TEMPLATE = subdirs - -SUBDIRS += \ - servicesameprocess \ - servicebinder \ - servicebroadcast \ - servicebroadcastsamelib - -qtHaveModule(remoteobjects) { - SUBDIRS += \ - serviceremoteobjects \ - serviceremoteobjectssamelib -} diff --git a/examples/androidextras/services/servicesameprocess/android/AndroidManifest.xml b/examples/androidextras/services/servicesameprocess/android/AndroidManifest.xml deleted file mode 100644 index ed72c2d..0000000 --- a/examples/androidextras/services/servicesameprocess/android/AndroidManifest.xml +++ /dev/null @@ -1,89 +0,0 @@ -<?xml version="1.0"?> -<manifest package="org.qtproject.example.qtandroidservice" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="-- %%INSERT_VERSION_NAME%% --" android:versionCode="-- %%INSERT_VERSION_CODE%% --" android:installLocation="auto"> - <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28"/> - - <!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application. - Remove the comment if you do not require these default permissions. --> - <!-- %%INSERT_PERMISSIONS --> - - <!-- The following comment will be replaced upon deployment with default features based on the dependencies of the application. - Remove the comment if you do not require these default features. --> - <!-- %%INSERT_FEATURES --> - - <supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/> - - <application android:hardwareAccelerated="true" android:name="org.qtproject.qt.android.bindings.QtApplication" android:label="-- %%INSERT_APP_NAME%% --" android:extractNativeLibs="true"> - <activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density" android:name="org.qtproject.qt.android.bindings.QtActivity" android:label="-- %%INSERT_APP_NAME%% --" android:screenOrientation="unspecified" android:launchMode="singleTop"> - <intent-filter> - <action android:name="android.intent.action.MAIN"/> - <category android:name="android.intent.category.LAUNCHER"/> - </intent-filter> - - <!-- Application arguments --> - <!-- meta-data android:name="android.app.arguments" android:value="arg1 arg2 arg3"/ --> - <!-- Application arguments --> - - <meta-data android:name="android.app.lib_name" android:value="-- %%INSERT_APP_LIB_NAME%% --"/> - <meta-data android:name="android.app.qt_sources_resource_id" android:resource="@array/qt_sources"/> - <meta-data android:name="android.app.repository" android:value="default"/> - <meta-data android:name="android.app.qt_libs_resource_id" android:resource="@array/qt_libs"/> - <meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/> - <!-- Deploy Qt libs as part of package --> - <meta-data android:name="android.app.bundle_local_qt_libs" android:value="-- %%BUNDLE_LOCAL_QT_LIBS%% --"/> - - <!-- Run with local libs --> - <meta-data android:name="android.app.use_local_qt_libs" android:value="-- %%USE_LOCAL_QT_LIBS%% --"/> - <meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/> - <meta-data android:name="android.app.load_local_libs_resource_id" android:resource="@array/load_local_libs"/> - <meta-data android:name="android.app.load_local_jars" android:value="-- %%INSERT_LOCAL_JARS%% --"/> - <meta-data android:name="android.app.static_init_classes" android:value="-- %%INSERT_INIT_CLASSES%% --"/> - <!-- Used to specify custom system library path to run with local system libs --> - <!-- <meta-data android:name="android.app.system_libs_prefix" android:value="/system/lib/"/> --> - <!-- Messages maps --> - <meta-data android:value="@string/ministro_not_found_msg" android:name="android.app.ministro_not_found_msg"/> - <meta-data android:value="@string/ministro_needed_msg" android:name="android.app.ministro_needed_msg"/> - <meta-data android:value="@string/fatal_error_msg" android:name="android.app.fatal_error_msg"/> - <meta-data android:value="@string/unsupported_android_version" android:name="android.app.unsupported_android_version"/> - <!-- Messages maps --> - - <!-- Splash screen --> - <!-- Orientation-specific (portrait/landscape) data is checked first. If not available for current orientation, - then android.app.splash_screen_drawable. For best results, use together with splash_screen_sticky and - use hideSplashScreen() with a fade-out animation from Qt Android Extras to hide the splash screen when you - are done populating your window with content. --> - <!-- meta-data android:name="android.app.splash_screen_drawable_portrait" android:resource="@drawable/logo_portrait" / --> - <!-- meta-data android:name="android.app.splash_screen_drawable_landscape" android:resource="@drawable/logo_landscape" / --> - <!-- meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/logo"/ --> - <!-- meta-data android:name="android.app.splash_screen_sticky" android:value="true"/ --> - <!-- Splash screen --> - - <!-- Background running --> - <!-- Warning: changing this value to true may cause unexpected crashes if the - application still try to draw after - "applicationStateChanged(Qt::ApplicationSuspended)" - signal is sent! --> - <meta-data android:name="android.app.background_running" android:value="false"/> - <!-- Background running --> - - <!-- auto screen scale factor --> - <meta-data android:name="android.app.auto_screen_scale_factor" android:value="false"/> - <!-- auto screen scale factor --> - - <!-- extract android style --> - <!-- available android:values : - * default - In most cases this will be the same as "full", but it can also be something else if needed, e.g., for compatibility reasons - * full - useful QWidget & Quick Controls 1 apps - * minimal - useful for Quick Controls 2 apps, it is much faster than "full" - * none - useful for apps that don't use any of the above Qt modules - --> - <meta-data android:name="android.app.extract_android_style" android:value="default"/> - <!-- extract android style --> - </activity> - - <service android:name=".QtAndroidService"> - <!-- Background running --> - <meta-data android:name="android.app.background_running" android:value="true"/> - <!-- Background running --> - </service> - </application> -</manifest> diff --git a/examples/androidextras/services/servicesameprocess/android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java b/examples/androidextras/services/servicesameprocess/android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java deleted file mode 100644 index 1a5f5e5..0000000 --- a/examples/androidextras/services/servicesameprocess/android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java +++ /dev/null @@ -1,92 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -package org.qtproject.example.qtandroidservice; - -import android.content.Context; -import android.content.Intent; -import android.util.Log; -import android.app.Service; -import android.os.IBinder; - -public class QtAndroidService extends Service -{ - private static native void sendToQt(String message); - private static final String TAG = "QtAndroidService"; - - @Override - public void onCreate() { - super.onCreate(); - Log.i(TAG, "Creating Service"); - } - - @Override - public void onDestroy() { - super.onDestroy(); - Log.i(TAG, "Destroying Service"); - } - - @Override - public int onStartCommand(Intent intent, int flags, int startId) { - int ret = super.onStartCommand(intent, flags, startId); - String name = new String(intent.getByteArrayExtra("name")); - Log.i(TAG, "Service received name: " + name); - String message = "Hello " + name; - sendToQt(message); - Log.i(TAG, "Service sent back message: " + message); - - return ret; - } - - @Override - public IBinder onBind(Intent intent) { - return null; - } -} diff --git a/examples/androidextras/services/servicesameprocess/doc/src/qtandroidextras-example-service-same-process.qdoc b/examples/androidextras/services/servicesameprocess/doc/src/qtandroidextras-example-service-same-process.qdoc deleted file mode 100644 index 7aeef0a..0000000 --- a/examples/androidextras/services/servicesameprocess/doc/src/qtandroidextras-example-service-same-process.qdoc +++ /dev/null @@ -1,116 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \title Native Android Service in Same Process - \ingroup examples-qtandroidextras - \example services/servicesameprocess - \brief Demonstrates how to run an Android service in the main process, - and how to communicate between QML/C++ and a Java service. - - \image androidservices.png - - This example demonstrates how to create and run a simple Android service in - the same process as the main activity \c QtActivity, and then exchange data - between QML/C++ and the Java service. This service is a pure Java - implementation. - - When clicking the \uicontrol {Send to Service} button, the name entered in - the QML view, Qt, in this case, is sent to the Android service. Then, the service - replies back with a message \c {Hello Qt} which is printed in the QML view. - - \include examples-run.qdocinc - - \section1 Create the Service - - When running the app's process, you can extend either \c QtService or \c Service. - Extending \c QtService allows Qt to load all the necessary libraries to load - Qt components correctly and call native methods on Android. However, here - the service is running in the same process, so extending either class works. - - Start by creating the Java service class. This is a normal Android \c Service - that receives a name from QML and replies back with \c {Hello <name>}: - - \quotefromfile services/servicesameprocess/android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java - \skipto package - \printuntil /^\}/ - - In the overwritten method - \l{Android: Service onStartCommand}{onStartCommand()}, the service receives a - name from the calling intent, then calls the native method - \c {sendToQt(String message)}. For more information on managing native - calls in Qt, see \l{Calling QML/C++ Functions from Java Code}. - - \section1 Manage the AndroidManifest.xml File - - To use the service, it must be declared in the \c AndroidManifest.xml - file. When using pure Android Service in the main app process, use the following: - - \quotefromfile services/servicesameprocess/android/AndroidManifest.xml - \skipto <service - \printuntil </service> - - \section1 Start the Service - - Before starting the service, register the native methods, then call the - \l{Android: Service startService}{startService()} method, as follows: - - \quotefromfile services/servicesameprocess/qtandroidservice.cpp - \skipto sendToService - \printuntil /^\}/ - - This function is used to start the Service. If the service is already running, - it will only send the names without starting a new service instance. - - Then, you have to add the necessary \l Connections, as described in - \l{Qt JNI Messenger}{Qt JNI Messenger Example}. - - \sa {Android Services}, {Qt for Android}, {Qt Android Extras} -*/ diff --git a/examples/androidextras/services/servicesameprocess/main.cpp b/examples/androidextras/services/servicesameprocess/main.cpp deleted file mode 100644 index 1d06566..0000000 --- a/examples/androidextras/services/servicesameprocess/main.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qtandroidservice.h" - -#include <QGuiApplication> -#include <QQmlApplicationEngine> -#include <QQmlContext> - -int main(int argc, char *argv[]) -{ - QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); - QGuiApplication app(argc, argv); - QQmlApplicationEngine engine; - - QtAndroidService *qtAndroidService = new QtAndroidService(&app); - engine.rootContext()->setContextProperty(QLatin1String("qtAndroidService"), qtAndroidService); - - const QUrl url(http://code.qt.io/QStringLiteral(%22qrc:/main.qml")); - QObject::connect(&engine, &QQmlApplicationEngine::objectCreated, - &app, [url](QObject *obj, const QUrl &objUrl) { - if (!obj && url == objUrl) - QCoreApplication::exit(-1); - }, Qt::QueuedConnection); - engine.load(url); - - qtAndroidService->sendToService("Qt"); - - return app.exec(); -} diff --git a/examples/androidextras/services/servicesameprocess/qtandroidservice.cpp b/examples/androidextras/services/servicesameprocess/qtandroidservice.cpp deleted file mode 100644 index 70db380..0000000 --- a/examples/androidextras/services/servicesameprocess/qtandroidservice.cpp +++ /dev/null @@ -1,88 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qtandroidservice.h" - -#include <QAndroidJniEnvironment> -#include <QAndroidIntent> -#include <QtDebug> - -QtAndroidService *QtAndroidService::m_instance = nullptr; - -static void receivedFromAndroidService(JNIEnv *env, jobject /*thiz*/, jstring value) -{ - emit QtAndroidService::instance()->messageFromService(env->GetStringUTFChars(value, nullptr)); -} - -QtAndroidService::QtAndroidService(QObject *parent) : QObject(parent) -{ - m_instance = this; - - JNINativeMethod methods[] {{"sendToQt", "(Ljava/lang/String;)V", reinterpret_cast<void *>(receivedFromAndroidService)}}; - QAndroidJniObject javaClass("org/qtproject/example/qtandroidservice/QtAndroidService"); - - QAndroidJniEnvironment env; - jclass objectClass = env->GetObjectClass(javaClass.object<jobject>()); - env->RegisterNatives(objectClass, - methods, - sizeof(methods) / sizeof(methods[0])); - env->DeleteLocalRef(objectClass); -} - -void QtAndroidService::sendToService(const QString &name) -{ - QAndroidIntent serviceIntent(QtAndroid::androidActivity().object(), - "org/qtproject/example/qtandroidservice/QtAndroidService"); - serviceIntent.putExtra("name", name.toUtf8()); - QAndroidJniObject result = QtAndroid::androidActivity().callObjectMethod( - "startService", - "(Landroid/content/Intent;)Landroid/content/ComponentName;", - serviceIntent.handle().object()); -} diff --git a/examples/androidextras/services/servicesameprocess/qtandroidservice.h b/examples/androidextras/services/servicesameprocess/qtandroidservice.h deleted file mode 100644 index 2bed43c..0000000 --- a/examples/androidextras/services/servicesameprocess/qtandroidservice.h +++ /dev/null @@ -1,75 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtAndroidExtras module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QTANDROIDSERVICE_H -#define QTANDROIDSERVICE_H - -#include <QObject> -#include <QtAndroid> -#include <QAndroidIntent> - -class QtAndroidService : public QObject -{ - Q_OBJECT - -public: - QtAndroidService(QObject *parent = nullptr); - - static QtAndroidService *instance() { return m_instance; } - Q_INVOKABLE void sendToService(const QString &name); - -signals: - void messageFromService(const QString &message); - -private: - static QtAndroidService *m_instance; -}; - -#endif // QTANDROIDSERVICE_H diff --git a/examples/androidextras/services/servicesameprocess/servicesameprocess.pro b/examples/androidextras/services/servicesameprocess/servicesameprocess.pro deleted file mode 100644 index 643094f..0000000 --- a/examples/androidextras/services/servicesameprocess/servicesameprocess.pro +++ /dev/null @@ -1,24 +0,0 @@ -QT += qml quick androidextras - -CONFIG += c++11 - -HEADERS += \ - qtandroidservice.h - -SOURCES += \ - main.cpp \ - qtandroidservice.cpp - -include(../common/common.pri) - -# Additional import path used to resolve QML modules in Qt Creator's code model -QML_IMPORT_PATH = - -target.path = $$[QT_INSTALL_EXAMPLES]/androidextras/services/servicesameprocess -INSTALLS += target - -ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android - -DISTFILES += \ - android/src/org/qtproject/example/qtandroidservice/QtAndroidService.java \ - android/AndroidManifest.xml |