4#ifndef QJNI_ENVIRONMENT_H
5#define QJNI_ENVIRONMENT_H
7#include <QtCore/QScopedPointer>
9#if defined(Q_QDOC) || defined(Q_OS_ANDROID)
11#include <QtCore/qjnitypes.h>
23 JNIEnv *operator->()
const;
25 JNIEnv *jniEnv()
const;
27 template<
typename Class>
29 jmethodID findMethod(jclass clazz,
const char *
methodName,
const char *signature);
30 template<
typename ...Args>
31 jmethodID findMethod(jclass clazz,
const char *
methodName) {
32 constexpr auto signature = QtJniTypes::methodSignature<Args...>();
35 jmethodID findStaticMethod(jclass clazz,
const char *
methodName,
const char *signature);
36 template<
typename ...Args>
37 jmethodID findStaticMethod(jclass clazz,
const char *
methodName) {
38 constexpr auto signature = QtJniTypes::methodSignature<Args...>();
41 jfieldID findField(jclass clazz,
const char *fieldName,
const char *signature);
43 jfieldID findField(jclass clazz,
const char *fieldName) {
44 constexpr auto signature = QtJniTypes::fieldSignature<T>();
45 return findField(clazz, fieldName,
signature.data());
47 jfieldID findStaticField(jclass clazz,
const char *fieldName,
const char *signature);
49 jfieldID findStaticField(jclass clazz,
const char *fieldName) {
50 constexpr auto signature = QtJniTypes::fieldSignature<T>();
51 return findStaticField(clazz, fieldName,
signature.data());
55 bool registerNativeMethods(jclass clazz,
const JNINativeMethod
methods[],
int size);
57 bool registerNativeMethods(
const char *
className, std::initializer_list<JNINativeMethod>
methods)
62 bool registerNativeMethods(jclass clazz, std::initializer_list<JNINativeMethod>
methods)
64 return registerNativeMethods(clazz, std::data(
methods),
methods.size());
67#if QT_DEPRECATED_SINCE(6, 2)
73 enum class OutputMode {
78 bool checkAndClearExceptions(OutputMode outputMode = OutputMode::Verbose);
79 static bool checkAndClearExceptions(JNIEnv *env, OutputMode outputMode = OutputMode::Verbose);
static JNINativeMethod methods[]
Combined button and popup list for selecting options.
Q_CORE_EXPORT jclass findClass(const char *className, JNIEnv *env)
Q_CORE_EXPORT JavaVM * javaVM()
constexpr timespec operator*(const timespec &t1, int mul)
static QString methodName(const QDBusIntrospection::Method &method)
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
#define QT_DEPRECATED_VERSION_X_6_2(text)
const char className[16]
[1]