QAndroidJniObject activity = QAndroidJniObject::callStaticObjectMethod("org/qtproject/qt5/android/QtNative", "activity", "()Landroid/app/Activity;"); //activity is valid
QAndroidJniObject path=QAndroidJniObject::fromString("file://mnt/sdcard/Download/QtApp.apk"); //path is valid
QAndroidJniObject uri=QAndroidJniObject("java/net/URI","(Ljava/lang/String;)V",path.object<jstring>()); //uri is valid
QAndroidJniObject intent("android/content/Intent","()V"); //intent is valid, but empty
QAndroidJniObject type=QAndroidJniObject::fromString("application/vnd.android.package-archive"); //type is valid
QAndroidJniObject result=intent.callObjectMethod("setType","(Ljava/lang/String;)Landroid/content/Intent;",type.object<jobject>()); //result is valid, intent contains type
result=intent.callObjectMethod("setDataAndNormalize","(Ljava/net/URI;)Landroid/content/Intent;",uri.object<jobject>()); //result is invalid, intent contains type
activity.callObjectMethod("startActivity","(Landroid/content/Intent;)V",intent.object<jobject>()); //works, but shows a selection screen for the intent containing email, bluetooth etc. because intent's data member is missing
QAndroidJniObject activity = QAndroidJniObject::callStaticObjectMethod("org/qtproject/qt5/android/QtNative", "activity", "()Landroid/app/Activity;"); //activity is valid
QAndroidJniObject path=QAndroidJniObject::fromString("file://mnt/sdcard/Download/QtApp.apk"); //path is valid
QAndroidJniObject uri=QAndroidJniObject("java/net/URI","(Ljava/lang/String;)V",path.object<jstring>()); //uri is valid
QAndroidJniObject intent("android/content/Intent","()V"); //intent is valid, but empty
QAndroidJniObject type=QAndroidJniObject::fromString("application/vnd.android.package-archive"); //type is valid
QAndroidJniObject result=intent.callObjectMethod("setType","(Ljava/lang/String;)Landroid/content/Intent;",type.object<jobject>()); //result is valid, intent contains type
result=intent.callObjectMethod("setDataAndNormalize","(Ljava/net/URI;)Landroid/content/Intent;",uri.object<jobject>()); //result is invalid, intent contains type
activity.callObjectMethod("startActivity","(Landroid/content/Intent;)V",intent.object<jobject>()); //works, but shows a selection screen for the intent containing email, bluetooth etc. because intent's data member is missing
To copy to clipboard, switch view to plain text mode
Bookmarks