前言
在同事的幫助下,勉強實現了,需要稍微改動下源碼,效果圖如下:
基本操作猛如虎
新建兩個工程,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之間還能互傳參數等等騷操作,後面有需求了再說~~