前言
在同事的帮助下,勉强实现了,需要稍微改动下源码,效果图如下:
基本操作猛如虎
新建两个工程,app01和app02。app1界面多个按钮,方便我们点击启动app2看效果。然后就是分别为两个工程添加 AndroidManifest.xml,不知道怎么添加?看这里-> Qt for Android之AndroidManifest.xml详解
包名还是稍微区分下,这里是org.qtproject.appone 和 org.qtproject.apptwo
然后app02编译生成apk装在测试机上,先不管他。
再看app01,为其添加 QTest.java文件,路径:
\qt_androidApp01\android\src\org\qtproject\appone\QTest.java
内容如下:
package org.qtproject.appone;
import org.qtproject.qt5.android.bindings.QtActivity;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
public class QTest {
public static void create_si(){
QtActivity cur = QtActivity.m_curAc;
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setClassName("org.qtproject.apptwo", "org.qtproject.qt5.android.bindings.QtActivity");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
cur.startActivity(intent);
}
}
-------然后修改源码:
打开qt安装路径下的 D:\QT5.11.2\5.11.2\android_armv7\src\android\java\src\org\qtproject\qt5\android\bindings\QtActivity.java,在该位置添加这两句代码保存。
------andThen,完善槽函数
注意app01工程文件须添加 QT += androidextras
#include <QtAndroid>
#include <QAndroidJniObject>
#include <QAndroidJniEnvironment>
//点击打开App02
void MainWindow::on_pushButton_clicked()
{
QAndroidJniObject::callStaticMethod<void>("org/qtproject/appone/QTest",
"create_si",
"()V");
}
编译运行app01,apk须装在同一部测试机上。
》》》这里只是简单的示例,两个app之间还能互传参数等等骚操作,后面有需求了再说~~