Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qjnihelpers_p.h
Go to the documentation of this file.
1
// Copyright (C) 2021 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
// Qt-Security score:significant reason:default
4
5
#
ifndef
QJNIHELPERS_H
6
#
define
QJNIHELPERS_H
7
8
//
9
// W A R N I N G
10
// -------------
11
//
12
// This file is not part of the Qt API. It exists purely as an
13
// implementation detail. This header file may change from version to
14
// version without notice, or even be removed.
15
//
16
// We mean it.
17
//
18
19
#
include
<
jni
.
h
>
20
#
include
<
functional
>
21
#
include
<
QtCore
/
private
/
qglobal_p
.
h
>
22
#
include
<
QtCore
/
qcoreapplication_platform
.
h
>
23
24
QT_BEGIN_NAMESPACE
25
26
Q_DECLARE_JNI_CLASS
(QtNative,
"org/qtproject/qt/android/QtNative"
)
27
28
namespace
QtAndroidPrivate
29
{
30
class
Q_CORE_EXPORT
ActivityResultListener
31
{
32
public
:
33
virtual
~
ActivityResultListener
();
34
virtual
bool
handleActivityResult
(
jint
requestCode
,
jint
resultCode
,
jobject
data
) = 0;
35
};
36
37
class
Q_CORE_EXPORT
NewIntentListener
38
{
39
public
:
40
virtual
~
NewIntentListener
();
41
virtual
bool
handleNewIntent
(
JNIEnv
*
env
,
jobject
intent
) = 0;
42
};
43
44
class
Q_CORE_EXPORT
ResumePauseListener
45
{
46
public
:
47
virtual
~
ResumePauseListener
();
48
virtual
void
handlePause
();
49
virtual
void
handleResume
();
50
};
51
52
class
Q_CORE_EXPORT
OnBindListener
53
{
54
public
:
55
virtual
~
OnBindListener
() {}
56
virtual
jobject
onBind
(
jobject
intent
) = 0;
57
};
58
59
class
Q_CORE_EXPORT
GenericMotionEventListener
60
{
61
public
:
62
virtual
~
GenericMotionEventListener
();
63
virtual
bool
handleGenericMotionEvent
(
jobject
event
) = 0;
64
};
65
66
class
Q_CORE_EXPORT
KeyEventListener
67
{
68
public
:
69
virtual
~
KeyEventListener
();
70
virtual
bool
handleKeyEvent
(
jobject
event
) = 0;
71
};
72
73
class
Q_CORE_EXPORT
AndroidDeadlockProtector
74
{
75
public
:
76
AndroidDeadlockProtector
(
const
QString
&
lockedBy
);
77
~
AndroidDeadlockProtector
();
78
bool
acquire
();
79
80
private
:
81
bool
m_acquired
=
false
;
82
QString
m_lockedBy
;
83
84
inline
static
QStringList
s_lockers
;
85
};
86
87
Q_CORE_EXPORT
QtJniTypes
::
Activity
activity
();
88
Q_CORE_EXPORT
QtJniTypes
::
Service
service
();
89
Q_CORE_EXPORT
QtJniTypes
::
Context
context
();
90
Q_CORE_EXPORT JavaVM *
javaVM
();
91
Q_CORE_EXPORT jint
initJNI
(
JavaVM
*
vm
,
JNIEnv
*
env
);
92
Q_CORE_EXPORT jclass
findClass
(
const
char
*
className
,
JNIEnv
*
env
);
93
jobject
classLoader
();
94
Q_CORE_EXPORT jint
androidSdkVersion
();
95
96
bool
registerPermissionNatives
(QJniEnvironment &env);
97
bool
registerNativeInterfaceNatives
(QJniEnvironment &env);
98
bool
registerExtrasNatives
(QJniEnvironment &env);
99
100
Q_CORE_EXPORT
void
handleActivityResult
(jint requestCode, jint resultCode, jobject data);
101
Q_CORE_EXPORT
void
registerActivityResultListener
(
ActivityResultListener
*
listener
);
102
Q_CORE_EXPORT
void
unregisterActivityResultListener
(
ActivityResultListener
*
listener
);
103
104
Q_CORE_EXPORT
void
handleNewIntent
(JNIEnv *env, jobject intent);
105
Q_CORE_EXPORT
void
registerNewIntentListener
(
NewIntentListener
*
listener
);
106
Q_CORE_EXPORT
void
unregisterNewIntentListener
(
NewIntentListener
*
listener
);
107
108
Q_CORE_EXPORT
void
registerGenericMotionEventListener
(
GenericMotionEventListener
*
listener
);
109
Q_CORE_EXPORT
void
unregisterGenericMotionEventListener
(
GenericMotionEventListener
*
listener
);
110
111
Q_CORE_EXPORT
void
registerKeyEventListener
(
KeyEventListener
*
listener
);
112
Q_CORE_EXPORT
void
unregisterKeyEventListener
(
KeyEventListener
*
listener
);
113
114
Q_CORE_EXPORT
void
handlePause
();
115
Q_CORE_EXPORT
void
handleResume
();
116
Q_CORE_EXPORT
void
registerResumePauseListener
(
ResumePauseListener
*
listener
);
117
Q_CORE_EXPORT
void
unregisterResumePauseListener
(
ResumePauseListener
*
listener
);
118
119
Q_CORE_EXPORT
void
waitForServiceSetup
();
120
Q_CORE_EXPORT
int
acuqireServiceSetup
(
int
flags);
121
Q_CORE_EXPORT
void
setOnBindListener
(
OnBindListener
*
listener
);
122
Q_CORE_EXPORT jobject
callOnBindListener
(
jobject
intent
);
123
124
Q_CORE_EXPORT
bool
acquireAndroidDeadlockProtector
();
125
Q_CORE_EXPORT
void
releaseAndroidDeadlockProtector
();
126
127
Q_CORE_EXPORT
bool
isUncompressedNativeLibs
();
128
Q_CORE_EXPORT QString
resolveApkPath
(
const
QString
&
fileName
);
129
}
130
131
#
define
Q_JNI_FIND_AND_CHECK_CLASS
(
CLASS_NAME
)
132
clazz
=
env
.
findClass
(
CLASS_NAME
)
;
133
if
(
!
clazz
)
{
134
__android_log_print
(
ANDROID_LOG_FATAL
,
m_qtTag
,
QtAndroid
::
classErrorMsgFmt
(
)
,
CLASS_NAME
)
;
135
return
JNI_FALSE
;
136
}
137
138
#
define
Q_JNI_GET_AND_CHECK_METHOD
(
ID
,
CLASS
,
METHOD_NAME
,
METHOD_SIGNATURE
)
139
ID
=
env
.
findMethod
(
CLASS
,
METHOD_NAME
,
METHOD_SIGNATURE
)
;
140
if
(
!
ID
)
{
141
__android_log_print
(
ANDROID_LOG_FATAL
,
m_qtTag
,
QtAndroid
::
methodErrorMsgFmt
(
)
,
142
METHOD_NAME
,
METHOD_SIGNATURE
)
;
143
return
JNI_FALSE
;
144
}
145
146
#
define
Q_JNI_GET_AND_CHECK_STATIC_METHOD
(
ID
,
CLASS
,
METHOD_NAME
,
METHOD_SIGNATURE
)
147
ID
=
env
.
findStaticMethod
(
CLASS
,
METHOD_NAME
,
METHOD_SIGNATURE
)
;
148
if
(
!
ID
)
{
149
__android_log_print
(
ANDROID_LOG_FATAL
,
m_qtTag
,
QtAndroid
::
methodErrorMsgFmt
(
)
,
150
METHOD_NAME
,
METHOD_SIGNATURE
)
;
151
return
JNI_FALSE
;
152
}
153
154
#
define
Q_JNI_GET_AND_CHECK_FIELD
(
ID
,
CLASS
,
FIELD_NAME
,
FIELD_SIGNATURE
)
155
ID
=
env
.
findField
(
CLASS
,
FIELD_NAME
,
FIELD_SIGNATURE
)
;
156
if
(
!
ID
)
{
157
__android_log_print
(
ANDROID_LOG_FATAL
,
m_qtTag
,
QtAndroid
::
fieldErrorMsgFmt
(
)
,
158
FIELD_NAME
,
FIELD_SIGNATURE
)
;
159
return
JNI_FALSE
;
160
}
161
162
#
define
Q_JNI_GET_AND_CHECK_STATIC_FIELD
(
ID
,
CLASS
,
FIELD_NAME
,
FIELD_SIGNATURE
)
163
ID
=
env
.
findStaticField
(
CLASS
,
FIELD_NAME
,
FIELD_SIGNATURE
)
;
164
if
(
!
ID
)
{
165
__android_log_print
(
ANDROID_LOG_FATAL
,
m_qtTag
,
QtAndroid
::
fieldErrorMsgFmt
(
)
,
166
FIELD_NAME
,
FIELD_SIGNATURE
)
;
167
return
JNI_FALSE
;
168
}
169
170
QT_END_NAMESPACE
171
172
#
endif
// QJNIHELPERS_H
QJniEnvironmentPrivateTLS
Definition
qjnienvironment.cpp:40
QJniEnvironmentPrivateTLS::~QJniEnvironmentPrivateTLS
~QJniEnvironmentPrivateTLS()
Definition
qjnienvironment.cpp:42
QJniEnvironmentPrivate
Definition
qjnienvironment.cpp:34
QJniEnvironmentPrivate::jniEnv
JNIEnv * jniEnv
Definition
qjnienvironment.cpp:36
QtAndroidPrivate::ActivityResultListener
Definition
qjnihelpers_p.h:31
QtAndroidPrivate::AndroidDeadlockProtector
Definition
qjnihelpers_p.h:74
QtAndroidPrivate::GenericMotionEventListener
Definition
qjnihelpers_p.h:60
QtAndroidPrivate::KeyEventListener
Definition
qjnihelpers_p.h:67
QtAndroidPrivate::NewIntentListener
Definition
qjnihelpers_p.h:38
QtAndroidPrivate::OnBindListener
Definition
qjnihelpers_p.h:53
QtAndroidPrivate::ResumePauseListener
Definition
qjnihelpers_p.h:45
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
QtAndroidPrivate
\preliminary \inmodule QtCorePrivate
Definition
qjnihelpers_p.h:29
QtAndroidPrivate::unregisterNewIntentListener
Q_CORE_EXPORT void unregisterNewIntentListener(NewIntentListener *listener)
Definition
qjnihelpers.cpp:140
QtAndroidPrivate::acuqireServiceSetup
Q_CORE_EXPORT int acuqireServiceSetup(int flags)
Definition
qjnihelpers.cpp:424
QtAndroidPrivate::registerNewIntentListener
Q_CORE_EXPORT void registerNewIntentListener(NewIntentListener *listener)
Definition
qjnihelpers.cpp:134
QtAndroidPrivate::registerNativeInterfaceNatives
bool registerNativeInterfaceNatives(QJniEnvironment &env)
Posts the function runnable to the Android thread.
Definition
qandroidnativeinterface.cpp:235
QtAndroidPrivate::unregisterResumePauseListener
Q_CORE_EXPORT void unregisterResumePauseListener(ResumePauseListener *listener)
Definition
qjnihelpers.cpp:235
QtAndroidPrivate::unregisterGenericMotionEventListener
Q_CORE_EXPORT void unregisterGenericMotionEventListener(GenericMotionEventListener *listener)
Definition
qjnihelpers.cpp:200
QtAndroidPrivate::acquireAndroidDeadlockProtector
Q_CORE_EXPORT bool acquireAndroidDeadlockProtector()
Definition
qjnihelpers.cpp:448
QtAndroidPrivate::unregisterKeyEventListener
Q_CORE_EXPORT void unregisterKeyEventListener(KeyEventListener *listener)
Definition
qjnihelpers.cpp:212
QtAndroidPrivate::registerExtrasNatives
bool registerExtrasNatives(QJniEnvironment &env)
Definition
qandroidextras.cpp:693
QtAndroidPrivate::registerPermissionNatives
bool registerPermissionNatives(QJniEnvironment &env)
QtAndroidPrivate::handleResume
Q_CORE_EXPORT void handleResume()
Definition
qjnihelpers.cpp:249
QtAndroidPrivate::registerResumePauseListener
Q_CORE_EXPORT void registerResumePauseListener(ResumePauseListener *listener)
Definition
qjnihelpers.cpp:229
QtAndroidPrivate::releaseAndroidDeadlockProtector
Q_CORE_EXPORT void releaseAndroidDeadlockProtector()
Definition
qjnihelpers.cpp:453
QtAndroidPrivate::handleNewIntent
Q_CORE_EXPORT void handleNewIntent(JNIEnv *env, jobject intent)
Definition
qjnihelpers.cpp:146
QtAndroidPrivate::setOnBindListener
Q_CORE_EXPORT void setOnBindListener(OnBindListener *listener)
Definition
qjnihelpers.cpp:430
QtAndroidPrivate::registerKeyEventListener
Q_CORE_EXPORT void registerKeyEventListener(KeyEventListener *listener)
Definition
qjnihelpers.cpp:206
QtAndroidPrivate::handlePause
Q_CORE_EXPORT void handlePause()
Definition
qjnihelpers.cpp:241
QtAndroidPrivate::isUncompressedNativeLibs
Q_CORE_EXPORT bool isUncompressedNativeLibs()
Definition
qjnihelpers.cpp:257
QtAndroidPrivate::unregisterActivityResultListener
Q_CORE_EXPORT void unregisterActivityResultListener(ActivityResultListener *listener)
Definition
qjnihelpers.cpp:107
QtAndroidPrivate::registerGenericMotionEventListener
Q_CORE_EXPORT void registerGenericMotionEventListener(GenericMotionEventListener *listener)
Definition
qjnihelpers.cpp:194
QtAndroidPrivate::handleActivityResult
Q_CORE_EXPORT void handleActivityResult(jint requestCode, jint resultCode, jobject data)
Definition
qjnihelpers.cpp:113
QtAndroidPrivate::waitForServiceSetup
Q_CORE_EXPORT void waitForServiceSetup()
Definition
qjnihelpers.cpp:419
QtAndroidPrivate::classLoader
jobject classLoader()
Definition
qjnihelpers.cpp:406
QtAndroidPrivate::registerActivityResultListener
Q_CORE_EXPORT void registerActivityResultListener(ActivityResultListener *listener)
Definition
qjnihelpers.cpp:101
Q_DECLARE_JNI_CLASS
Q_DECLARE_JNI_CLASS(MotionEvent, "android/view/MotionEvent")
qtbase
src
corelib
kernel
qjnihelpers_p.h
Generated on
for Qt by
1.18.0