diff options
Diffstat (limited to 'examples/androidextras/services/servicebinder')
12 files changed, 0 insertions, 870 deletions
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 - |