diff options
Diffstat (limited to 'examples/corelib/platform/androidnotifier/doc/src/androidnotifier-example.qdoc')
-rw-r--r-- | examples/corelib/platform/androidnotifier/doc/src/androidnotifier-example.qdoc | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/examples/corelib/platform/androidnotifier/doc/src/androidnotifier-example.qdoc b/examples/corelib/platform/androidnotifier/doc/src/androidnotifier-example.qdoc new file mode 100644 index 0000000000..1315ad7762 --- /dev/null +++ b/examples/corelib/platform/androidnotifier/doc/src/androidnotifier-example.qdoc @@ -0,0 +1,62 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \title Qt Android Notifier + \example platform/androidnotifier + \meta tag {widgets,android,notification} + \brief Demonstrates calling Java code from Qt in an Android application. + \ingroup androidplatform + + \image androidnotifier.png + + This example demonstrates how to add a custom Java class to an Android + application, and how to call it using the JNI convenience APIs in Qt. + + Click on one of the smiley faces to send a notification in the status bar + of the Android screen. + + \include examples-run.qdocinc + + \section1 Calling Java Methods from C++ Code + + We define a custom Java class called \c NotificationClient in the + NotificationClient.java file: + + \quotefromfile platform/androidnotifier/android/src/org/qtproject/example/androidnotifier/NotificationClient.java + \skipto org.qtproject.example.androidnotifier + \printuntil /^\}/ + + In the NotificationClient C++ class header file, \c notificationclient.h, we + declare a simple C++ API to display notifications on an Android device. It + consists of a single string property, \c notification, and a slot, + \c updateAndroidNotification(), that calls the Java code: + + \snippet platform/androidnotifier/notificationclient.h Qt Notification Class + + We connect the \c notificationChanged() signal to the + \c updateAndroidNotification() slot to update the notification text when the + \c notification text changes: + + \snippet platform/androidnotifier/notificationclient.cpp notification changed signal + + The \c updateAndroidNotification() function calls the Java method responsible + for sending the notification from the Android platform APIs. First, we construct + a Java string \c jstring from the notification string, then pass the \c jstring + object as a parameter to the \c notify() method in Java: + + \snippet platform/androidnotifier/notificationclient.cpp Send notification message to Java + + The call to the Java meethod use \l QJniObject which relies on the Java Native + Interface (JNI) APIs to communicate with Java. Also, in the previous snippet, + we are passing the app's context object, which the static Java code can use + to tap into the app's specific properties and APIs. + + To make sure our smiley buttons do what they are supposed to, we add the + the following code to change the notification text if either of them are + clicked: + + \snippet platform/androidnotifier/main.cpp Connect button signals + + \sa {Qt for Android} +*/ |