QNativeInterface::QAndroidApplication Struct
Interface native d'une application principale sur Android. Plus d'informations...
| En-tête : | #include <QCoreApplication> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core)target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake : | QT += core |
| Depuis : | Qt 6.2 |
- Liste de tous les membres, y compris les membres hérités
- QAndroidApplication fait partie de Native Interfaces.
Membres publics statiques
(since 6.2) QJniObject | context() |
(since 6.2) void | hideSplashScreen(int duration = 0) |
(since 6.2) bool | isActivityContext() |
(since 6.2) QFuture<QVariant> | runOnAndroidMainThread(const std::function<QVariant ()> &runnable, const QDeadlineTimer timeout = QDeadlineTimer::Forever) |
(since 6.2) int | sdkVersion() |
Documentation des fonctions membres
[static, since 6.2] QJniObject QAndroidApplication::context()
Renvoie le contexte Android sous la forme d'un QtJniTypes::Context. Le contexte est un Activity si l'objet d'activité le plus récemment lancé est valide. Sinon, le contexte est un Service.
Cette fonction a été introduite dans Qt 6.2.
[static, since 6.2] void QAndroidApplication::hideSplashScreen(int duration = 0)
Cache l'écran de démarrage en utilisant un effet de fondu pour l'adresse duration. Si duration n'est pas fourni (la valeur par défaut est 0), l'écran de démarrage est masqué immédiatement après le démarrage de l'application.
Cette fonction a été introduite dans Qt 6.2.
[static, since 6.2] bool QAndroidApplication::isActivityContext()
Renvoie true si QAndroidApplication::context() fournit un contexte Activity.
Cette fonction a été introduite dans Qt 6.2.
[static, since 6.2] QFuture<QVariant> QAndroidApplication::runOnAndroidMainThread(const std::function<QVariant ()> &runnable, const QDeadlineTimer timeout = QDeadlineTimer::Forever)
Publie la fonction runnable dans le thread Android. La fonction sera mise en file d'attente et exécutée sur le thread de l'interface utilisateur d'Android. Si l'appel est effectué sur le thread Android UI, runnable sera exécuté immédiatement. Si l'application Android est en pause ou si l'activité principale est nulle, runnable est ajouté à la file d'attente du thread principal d'Android.
Cet appel renvoie un QFuture<QVariant> qui permet d'effectuer des appels synchrones et asynchrones, et peut gérer n'importe quel type de retour. Cependant, pour obtenir un résultat en retour de QFuture::result(), QVariant::value() doit être utilisé.
Si l'exécution de runnable dure plus longtemps que la période de timeout, les appels bloquants QFuture::waitForFinished() et QFuture::result() sont terminés une fois que timeout s'est écoulé. Toutefois, si l'exécution de runnable a déjà commencé, elle ne sera pas annulée.
L'exemple suivant montre comment exécuter un appel asynchrone qui attend un type de retour :
auto task = QNativeInterface: :QAndroidApplication::runOnAndroidMainThread([=]() { QJniObject surfaceView ; if (!surfaceView.isValid()) qDebug() << "SurfaceView object is not valid yet"; surfaceView = QJniObject("android/view/SurfaceView", "(Landroid/content/Context ;)V", QNativeInterface: :QAndroidApplication::context()) ; return QVariant::fromValue(surfaceView) ; }).then([](QFuture<QVariant> future) { auto surfaceView = future.result().value<QJniObject>() ; if (surfaceView.isValid()) qDebug() << "Retrieved SurfaceView object is valid"; }) ;
L'exemple suivant montre comment exécuter un appel synchrone avec un type de retour void :
QNativeInterface::QAndroidApplication::runOnAndroidMainThread([]() { QJniObject activity = QNativeInterface::QAndroidApplication::context(); // Hide system ui elements or go full screen activity.callObjectMethod("getWindow", "()Landroid/view/Window;") .callObjectMethod("getDecorView", "()Landroid/view/View;") .callMethod<void>("setSystemUiVisibility", "(I)V", 0xffffffff); }).waitForFinished();
Note : Faites attention au type d'opérations que vous effectuez sur le thread principal d'Android, car toute opération longue peut bloquer le rendu de l'interface utilisateur de l'application et la gestion des entrées. Si l'on s'attend à ce que la fonction ait un long temps d'exécution, il est bon d'utiliser QDeadlineTimer dans votre runnable pour gérer l'exécution et s'assurer qu'elle ne bloque pas le thread de l'interface utilisateur. En général, toute opération de plus de 5 secondes risque de bloquer l'interface utilisateur de l'application. Pour plus d'informations, voir Gardez votre application réactive.
Cette fonction a été introduite dans Qt 6.2.
[static, since 6.2] int QAndroidApplication::sdkVersion()
Renvoie la version du SDK Android. Cette version est également connue sous le nom de niveau API.
Cette fonction a été introduite dans Qt 6.2.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.