QAndroidJniObject allows you to create JNI objects from Qt C ++ code.
For example: to get activity:
QAndroidJniObject activity = QAndroidJniObject::callStaticObjectMethod("org/qtproject/qt5/android/QtNative", "activity", "()Landroid/app/Activity;");
For example: to create a new intent:
QAndroidJniObject intent("android/content/Intent","()V");
Then you can phase the Java executable code from C ++ ....
To answer your specific question, just copy / paste this code:
QAndroidJniObject activity = QAndroidJniObject::callStaticObjectMethod("org/qtproject/qt5/android/QtNative", "activity", "()Landroid/app/Activity;"); //activity is valid if ( activity.isValid() ) { // Equivalent to Jave code: 'Intent intent = new Intent();' QAndroidJniObject intent("android/content/Intent","()V"); if ( intent.isValid() ) { QAndroidJniObject param1 = QAndroidJniObject::fromString("com.android.settings"); QAndroidJniObject param2 = QAndroidJniObject::fromString("com.android.settings.DevelopmentSettings"); if ( param1.isValid() && param2.isValid() ) { // Equivalent to Jave code: 'intent.setClassName("com.android.settings", "com.android.settings.DevelopmentSettings");' intent.callObjectMethod("setClassName","(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;",param1.object<jobject>(),param2.object<jobject>()); // Equivalent to Jave code: 'startActivity(intent);' activity.callObjectMethod("startActivity","(Landroid/content/Intent;)V",intent.object<jobject>()); } } }
... and then vote !; -)
jpo38 source share