Qt开发Android应用,做软件升级的时候,需要调用android借口安装程序,首先在java文件中用android接口封装一个分享功能的方法,然后在C++中调用QAndroidJniObject::callStaticMethod即可。
首先,如果是一个新创建的Qt工程,需要创建一个AndroidManifest.xml文件,创建过程不再赘述,然后创建一个Java的类,继承于

public class MainActivity extends org.qtproject.qt5.android.bindings.QtActivity

然后定义一个公有的静态函数

public static void installApk(String filePath,QtActivity activity){        Intent intent = new Intent();        // 执行动作        intent.setAction(Intent.ACTION_VIEW);        File file = new File(filePath);        // 执行的数据类型        intent.setDataAndType(Uri.fromFile(file),"application/vnd.android.package-archive");        activity.startActivity(intent);    }

其中filePath是安装包所在的存储位置,由C++传入
接下来看看C++端的调用方式

void AndroidInterface::installApk(const QString &filePath){    QAndroidJniObject jFilePath = QAndroidJniObject::fromString(filePath);    QAndroidJniObject activity = QtAndroid::androidActivity();    QAndroidJniObject::callStaticMethod(                                            "com/lyy/test/MainActivity",                                            "installApk",                                            "(Ljava/lang/String;Lorg/qtproject/qt5/android/bindings/QtActivity;)V",                                            jFilePath.object(),                                            activity.object());}

这里直接传入安装包所在的位置即可。

更多相关文章

  1. android 应用在SD卡创建应用的文件夹
  2. 如何去除Android布局文件xml中的斜体样式
  3. Android 文件系统的结构
  4. Android各国语言缩写以及各国语言Values文件夹命名规则
  5. [ant]通过Android命令自动编译出build.xml文件
  6. Android LayoutInflater加载.xml文件原理分析
  7. 利用Android源码工具链直接编译c文件

随机推荐

  1. Android手机端调用webservice来获得手机
  2. Android(安卓)某些机型不带tcpdump的解决
  3. Android(安卓)Wear开发 - 数据通讯 - 第
  4. android的native_bridge
  5. Android(安卓)使用HorizontalListView 实
  6. Android(安卓)App性能优化之UI流畅度优化
  7. Android(安卓)实现在ImageView上绘图
  8. android 使用AndroidAnnotations注解简化
  9. pandaboard ES学习之旅——1 制作烧写SD
  10. Android(安卓)orm框架Sugar1.4源码(映射