Changeset View
Changeset View
Standalone View
Standalone View
tests/jni-signatures/main.cpp
1 | 1 | | |||
---|---|---|---|---|---|
2 | #define jclass int | ||||
3 | #define jint int | ||||
4 | #define jstring int | ||||
5 | | ||||
2 | // Crude approximation of #include <QAndroidJniObject> so we don't need QtAndroidExtras installed | 6 | // Crude approximation of #include <QAndroidJniObject> so we don't need QtAndroidExtras installed | ||
3 | class QAndroidJniObject | 7 | class QAndroidJniObject | ||
4 | { | 8 | { | ||
5 | public: | 9 | public: | ||
6 | QAndroidJniObject(const char *className, const char *signature); | 10 | QAndroidJniObject(const char *className, const char *signature); | ||
11 | QAndroidJniObject(jclass theClass, const char *signature); | ||||
7 | 12 | | |||
8 | template <typename T> | 13 | template <typename T> | ||
9 | void callObjectMethod(const char *methodName, const char *signature); | 14 | void callObjectMethod(const char *methodName, const char *signature); | ||
10 | 15 | | |||
11 | template <typename T> | 16 | template <typename T> | ||
12 | void callMethod(const char *methodName, const char *signature); | 17 | void callMethod(const char *methodName, const char *signature); | ||
13 | 18 | | |||
14 | template <typename T> | 19 | template <typename T> | ||
15 | static void callStaticMethod(const char *methodName, const char *signature); | 20 | static void callStaticMethod(const char *className, const char *methodName, const char *signature); | ||
16 | 21 | | |||
17 | template <typename T> | 22 | template <typename T> | ||
18 | static void callStaticObjectMethod(const char *methodName, const char *signature); | 23 | static void callStaticObjectMethod(const char *className, const char *methodName, const char *signature); | ||
24 | | ||||
25 | }; | ||||
26 | | ||||
27 | namespace QtAndroid { | ||||
28 | void androidActivity(); | ||||
19 | }; | 29 | }; | ||
20 | 30 | | |||
21 | int main() { | 31 | int main() { | ||
22 | 32 | | |||
23 | QAndroidJniObject obj("java/lang/String", "("); | 33 | | ||
34 | QAndroidJniObject obj("/java/lang/String", "("); | ||||
35 | | ||||
36 | jclass foo = 1; | ||||
37 | QAndroidJniObject obj2(foo, "()V"); | ||||
38 | | ||||
24 | obj.callObjectMethod<int>("someMethod", "()V"); | 39 | obj.callObjectMethod<int>("someMethod", "()V"); | ||
25 | obj.callObjectMethod<int>("someMethod", "(III)V"); | 40 | obj.callObjectMethod<int>("someMethod", "(III)V"); | ||
26 | obj.callObjectMethod<int>("someMethod", "(III"); | 41 | obj.callObjectMethod<int>("someMethod", "(III"); | ||
27 | 42 | | |||
28 | obj.callMethod<int>("someMethod", "()V"); | 43 | obj.callMethod<jint>("someMethod", "()V"); | ||
29 | obj.callMethod<int>("someMethod", "(III)V"); | 44 | obj.callMethod<jint>("someMethod", "(III)V"); | ||
30 | obj.callMethod<int>("someMethod", "()Ljava/lang/String"); | 45 | obj.callMethod<jint>("someMethod", "()Ljava/lang/String"); | ||
46 | | ||||
47 | QAndroidJniObject::callStaticMethod<jint>("someClass;", "someMethod", "()Ljava/lang/String"); | ||||
48 | | ||||
49 | QAndroidJniObject::callStaticObjectMethod<int>("someClass", "someOtherMethod", "(II)"); | ||||
31 | 50 | | |||
32 | QAndroidJniObject::callStaticMethod<int>("someMethod", "()Ljava/lang/String"); | 51 | obj.callObjectMethod<jstring>("className;", "toString"); | ||
33 | 52 | | |||
34 | QAndroidJniObject::callStaticObjectMethod<int>("someOtherMethod", "(II)"); | 53 | QtAndroid::androidActivity(); | ||
35 | } | 54 | } |