diff --git a/src/androidextras/android/qandroidfunctions.cpp b/src/androidextras/android/qandroidfunctions.cpp index a5ed23d35975d057a88363f6a54592703dc32a2b..651cf32f7a8967b1cd8efe9b91693a8c7277a889 100644 --- a/src/androidextras/android/qandroidfunctions.cpp +++ b/src/androidextras/android/qandroidfunctions.cpp @@ -180,6 +180,27 @@ void QtAndroid::startActivity(const QAndroidJniObject &intent, } } +/*! + \since 5.13 + + Starts the activity given by \a intent and provides the result asynchronously through the + \a resultReceiver if this is non-null. + + If \a resultReceiver is null, then the \c startActivity() method in the \c androidActivity() + will be called. Otherwise \c startActivityForResult() will be called. + + The \a receiverRequestCode is a request code unique to the \a resultReceiver, and will be + returned along with the result, making it possible to use the same receiver for more than + one intent. + + */ +void QtAndroid::startActivity(const QAndroidIntent &intent, + int receiverRequestCode, + QAndroidActivityResultReceiver *resultReceiver) +{ + startActivity(intent.handle(), receiverRequestCode, resultReceiver); +} + /*! \since 5.3 diff --git a/src/androidextras/android/qandroidfunctions.h b/src/androidextras/android/qandroidfunctions.h index 8dba43568c2e9a3fcda8e62ed256669e0bc39ef3..c6802e8a723846aad2c41c9b4019959a48d9b762 100644 --- a/src/androidextras/android/qandroidfunctions.h +++ b/src/androidextras/android/qandroidfunctions.h @@ -68,6 +68,9 @@ namespace QtAndroid Q_ANDROIDEXTRAS_EXPORT void startActivity(const QAndroidJniObject &intent, int receiverRequestCode, QAndroidActivityResultReceiver *resultReceiver = nullptr); + Q_ANDROIDEXTRAS_EXPORT void startActivity(const QAndroidIntent &intent, + int receiverRequestCode, + QAndroidActivityResultReceiver *resultReceiver = nullptr); enum class BindFlag { None = 0x00000000,