Qt for android實現app啓動另一個app

前言

在同事的幫助下,勉強實現了,需要稍微改動下源碼,效果圖如下:
在這裏插入圖片描述

基本操作猛如虎

新建兩個工程,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之間還能互傳參數等等騷操作,後面有需求了再說~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章