Qt for Android调用android原生控件安装apk
生活随笔
收集整理的這篇文章主要介紹了
Qt for Android调用android原生控件安装apk
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Qt開(kāi)發(fā)Android應(yīng)用,做軟件升級(jí)的時(shí)候,需要調(diào)用android借口安裝程序,
首先在java文件中用android接口封裝一個(gè)分享功能的方法,然后在C++中調(diào)用
QAndroidJniObject
::callStaticMethod即可。
首先,如果是一個(gè)新創(chuàng)建的Qt工程,需要?jiǎng)?chuàng)建一個(gè)AndroidManifest.xml文件,創(chuàng)建過(guò)程不再贅述,然后創(chuàng)建一個(gè)Java的類,繼承于
然后定義一個(gè)公有的靜態(tài)函數(shù)
public static void installApk(String filePath,QtActivity activity){Intent intent = new Intent();// 執(zhí)行動(dòng)作intent.setAction(Intent.ACTION_VIEW);File file = new File(filePath);// 執(zhí)行的數(shù)據(jù)類型intent.setDataAndType(Uri.fromFile(file),"application/vnd.android.package-archive");activity.startActivity(intent);}
其中filePath是安裝包所在的存儲(chǔ)位置,由C++傳入
接下來(lái)看看C++端的調(diào)用方式
void AndroidInterface::installApk(const QString &filePath) {QAndroidJniObject jFilePath = QAndroidJniObject::fromString(filePath);QAndroidJniObject activity = QtAndroid::androidActivity();QAndroidJniObject::callStaticMethod<void>("com/lyy/test/MainActivity","installApk","(Ljava/lang/String;Lorg/qtproject/qt5/android/bindings/QtActivity;)V",jFilePath.object<jstring>(),activity.object<jobject>()); } 這里直接傳入安裝包所在的位置即可。
總結(jié)
以上是生活随笔為你收集整理的Qt for Android调用android原生控件安装apk的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Qt for Android 调用and
- 下一篇: Qt for Android调用Andr