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之间还能互传参数等等骚操作,后面有需求了再说~~

发布了32 篇原创文章 · 获赞 4 · 访问量 3406

猜你喜欢

转载自blog.csdn.net/qq_35241071/article/details/103158480