11{
12 QAndroidJniEnvironment env;
13 QAndroidJniObject activity = QAndroidJniObject::callStaticObjectMethod("org/qtproject/qt5/android/QtNative",
14 "activity",
15 "()Landroid/app/Activity;");
16 if (env->ExceptionCheck()) {
17 qWarning("KisAndroidExitInfo::getLast: JNI exception in activity");
18 env->ExceptionDescribe();
19 env->ExceptionClear();
21 } else if (!activity.isValid()) {
22 qWarning("KisAndroidExitInfo::getLast: activity not valid");
24 }
25
26 QAndroidJniObject exitInfo =
27 activity.callObjectMethod("getLastApplicationExitInfo", "()Landroid/app/ApplicationExitInfo;");
28 if (env->ExceptionCheck()) {
29 qWarning("KisAndroidExitInfo::getLast: JNI exception in getLastApplicationExitInfo");
30 env->ExceptionDescribe();
31 env->ExceptionClear();
33 } else if (!exitInfo.isValid()) {
34 qWarning("KisAndroidExitInfo::getLast: exit info not valid");
36 }
37
38 int reasonCode = exitInfo.callMethod<jint>(
"getReason",
"()I");
39 if (env->ExceptionCheck()) {
40 qWarning("KisAndroidExitInfo::getLast: JNI exception in getReason");
41 env->ExceptionDescribe();
42 env->ExceptionClear();
44 }
45
47 if (env->ExceptionCheck()) {
48 qWarning("KisAndroidExitInfo::getLast: JNI exception in getStatus");
49 env->ExceptionDescribe();
50 env->ExceptionClear();
52 }
53
54 int importanceCode = exitInfo.callMethod<jint>(
"getImportance",
"()I");
55 if (env->ExceptionCheck()) {
56 qWarning("KisAndroidExitInfo::getLast: JNI exception in getImportance");
57 env->ExceptionDescribe();
58 env->ExceptionClear();
60 }
61
63 {
64 QAndroidJniObject descriptionObject = exitInfo.callObjectMethod("getDescription", "()Ljava/lang/String;");
65 if (env->ExceptionCheck()) {
66 qWarning("KisAndroidExitInfo::getLast: JNI exception in getDescription");
67 env->ExceptionDescribe();
68 env->ExceptionClear();
69 } else if (descriptionObject.isValid()) {
71 }
72 }
73
75}