[Interest] [ Android ] QtActivity connect startActivityForResult to onActivityResult to callback C++ code?
Ben Lau
xbenlau at gmail.com
Wed Jul 22 07:44:07 CEST 2015
For passing data from Java to C++, you may declare a native method in Java
and register via JNI in C++ side.
Example :
Declare native method
qtandroidexamplecode/QtRunner.java at master · benlau/qtandroidexamplecode
<https://github.com/benlau/qtandroidexamplecode/blob/master/qtandroidrunner/android/src/com/github/qt/QtRunner.java#L36>
Registration:
qtandroidexamplecode/qtandroidrunner.cpp at master ·
benlau/qtandroidexamplecode
<https://github.com/benlau/qtandroidexamplecode/blob/master/qtandroidrunner/qtandroidrunner.cpp#L23>
That is the standard way. However, in case you have problem in coding with
JNI, you may also consider an alternative method with using 3rd party
library:
Communication between C++ and Java without using JNI | Qt Forum
<http://forum.qt.io/topic/56510/communication-between-c-and-java-without-using-jni>
On 22 July 2015 at 00:35, Edward Sutton <edward.sutton at subsite.com> wrote:
> I have an activity working that I use to send a firmware update file
> from Android to a Bluetooth device using Android’s support for Object Push
> File “com.android.bluetooth.opp.BluetoothOppLauncherActivity"
>
> Can QtActivity receive a onActivityResult and connect it back to the C++
> code somehow? It does not allow me to override it.
>
> http://developer.android.com/training/basics/intents/result.html
>
> @Override
> protected void onActivityResult(int requestCode, int resultCode, Intent data) {
> // Check which request we're responding to
> if (requestCode == PICK_CONTACT_REQUEST) {
> // Make sure the request was successful
> if (resultCode == RESULT_OK) {
> // The user picked a contact.
> // The Intent's data Uri identifies which contact was selected.
>
> // Do something with the contact here (bigger example below)
> }
> }
> }
>
>
>
>
> public class TsrActivity extends QtActivity
>
> {
>
> private static TsrActivity m_instance;
>
>
> public TsrActivity()
>
> {
>
> m_instance = this;
>
> }
>
>
> /// Sends firmware file via OBEX OPP
>
> ///
>
> /// \remarks user must select matching "TK_0003" from intent screen
>
> ///
>
> /// \param[in] absolutePathToFile path to firmware files TK_11.tsu
>
> /// \param[in] address email body
>
> public static void sendFile(String absolutePathToFile, String address) {
>
> try {
>
> System.out.println("dbg: sendFile");
>
> System.out.println("dbg: absolutePathToFile:" + absolutePathToFile);
>
> System.out.println("dbg: address:" + address);
>
>
> String intentAction = android.content.Intent.ACTION_SEND;
>
> final Intent intent = new Intent(intentAction);
>
> intent.setType("application/x-tar");
>
> intent.setClassName("com.android.bluetooth",
>
> "com.android.bluetooth.opp.BluetoothOppLauncherActivity");
>
>
> Uri uriFile = Uri.fromFile(new File(absolutePathToFile));
>
> intent.putExtra(Intent.EXTRA_STREAM, uriFile);
>
>
> // title does not display on intent?
>
> String title = "Update software";
>
> m_instance.startActivity(Intent.createChooser(intent, title));
>
>
> } catch (Throwable t) {
>
> System.out.println("dbg: sendFile.exception");
>
>
> Toast.makeText(m_instance, "Request failed clickbutton: " + t.toString(),
>
> Toast.LENGTH_LONG).show();
>
> }
>
> }
>
>
>
> -Ed
>
>
>
>
> This email and any files transmitted with it from The Charles Machine
> Works, Inc. are confidential and intended solely for the use of the
> individual or entity to which they are addressed. If you have received this
> email in error please notify the sender. Our company accepts no liability
> for the contents of this email, or for the consequences of any actions
> taken on the basis of the information provided, unless that information is
> subsequently confirmed in writing. Please note that any views or opinions
> presented in this email are solely those of the author and do not
> necessarily represent those of the company. Finally, the recipient should
> check this email and any attachments for the presence of viruses. The
> company accepts no liability for any damage caused by any virus transmitted
> by this email.
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20150722/893cac63/attachment.html>
More information about the Interest
mailing list