Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. [SOLVED] How can i call an other App from a Qt App for Androids?
QtWS25 Last Chance

[SOLVED] How can i call an other App from a Qt App for Androids?

Scheduled Pinned Locked Moved Mobile and Embedded
android
22 Posts 3 Posters 9.8k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • X Offline
    X Offline
    xmaze
    wrote on last edited by p3c0
    #1

    Hello!!

    I try to design an App with Qt , the Qt app reads a tcp connection for RTLSDR raw data and then demodulate the ADSB signal.
    Because i cannot find a solution to read the usb device with libusb in Android i found a JAVA app from martin martinov, at this link https://play.google.com/store/apps/details?id=marto.rtl_tcp_andro&hl=en.
    This App sends the raw data via TCP connection. So i have to start this App manually, but it is very troublesome for a user.
    The developer of this App says that we can call a new intent from an other App behind the scenes.
    All i need is to launch an intent in the form iqsrc://-f 1090000000 -s 200000 - a 127.0.0.1 -g 100.

    How can i do that with QT ?
    Thank you very much in advance !!
    Also i need some testers so if you want send an invite to this group for more infos :https://groups.google.com/forum/#!forum/trackyourflight

    1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #2

      Hi,

      The QtAndroid might contain what you need

      Hope it helps

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      X 1 Reply Last reply
      0
      • J Offline
        J Offline
        jalomic
        wrote on last edited by
        #3

        Use http://doc.qt.io/qt-5/qtandroid.html

        Or use java + JNI. In android Qt examples you can find "NotificationClient" ( "Qt notifier" )

        X 1 Reply Last reply
        0
        • SGaistS SGaist

          Hi,

          The QtAndroid might contain what you need

          Hope it helps

          X Offline
          X Offline
          xmaze
          wrote on last edited by
          #4

          @SGaist said:

          Hi,

          The QtAndroid might contain what you need

          Hope it helps

          Thank you i think is useful cause i didnt see this Class, is there also a tutorial ?

          1 Reply Last reply
          0
          • J jalomic

            Use http://doc.qt.io/qt-5/qtandroid.html

            Or use java + JNI. In android Qt examples you can find "NotificationClient" ( "Qt notifier" )

            X Offline
            X Offline
            xmaze
            wrote on last edited by
            #5

            @jalomic said:

            Use http://doc.qt.io/qt-5/qtandroid.html

            Or use java + JNI. In android Qt examples you can find "NotificationClient" ( "Qt notifier" )

            What is better ? SGaist has also a suggestion ?

            J 1 Reply Last reply
            0
            • X xmaze

              @jalomic said:

              Use http://doc.qt.io/qt-5/qtandroid.html

              Or use java + JNI. In android Qt examples you can find "NotificationClient" ( "Qt notifier" )

              What is better ? SGaist has also a suggestion ?

              J Offline
              J Offline
              jalomic
              wrote on last edited by
              #6

              @xmaze it amounts to the same thing
              QAndroidJniObject - its nice JNI wrapper. For example QtAndroid ::androidActivity() - returns QAndroidJniObject, and you can call any method of your activity etc. =)
              In "Qt notifier" Example you can see how to create your own main java activity.

              1 Reply Last reply
              0
              • X Offline
                X Offline
                xmaze
                wrote on last edited by
                #7

                if i started ok then i need something like this

                QtAndroid::startActivity("marto.rtl_tcp_andro.DeviceOpenActivity",0,0);
                

                but i cannot understand where i have to put the command
                "iqsrc://-f 1090000000 -s 2000000 - a 127.0.0.1 -g 100"
                Some help please ?

                J 1 Reply Last reply
                0
                • X xmaze

                  if i started ok then i need something like this

                  QtAndroid::startActivity("marto.rtl_tcp_andro.DeviceOpenActivity",0,0);
                  

                  but i cannot understand where i have to put the command
                  "iqsrc://-f 1090000000 -s 2000000 - a 127.0.0.1 -g 100"
                  Some help please ?

                  J Offline
                  J Offline
                  jalomic
                  wrote on last edited by p3c0
                  #8

                  @xmaze said:

                  iqsrc://-f 1090000000 -s 2000000 - a 127.0.0.1 -g 100

                  For QtAndroid::startActivity you must create intent first !

                  QAndroidJniObject url=QAndroidJniObject::fromString("iqsrc://-f 1090000000 -s 2000000 - a 127.0.0.1 -g 100");
                  QAndroidJniObject intent=QAndroidJniObject::callStaticObjectMethod("android/content/Intent","parseUri","(Ljava/lang/String;I)Landroid/content/Intent;", url.object<jstring>(),0x00000001);
                  QtAndroid::startActivity(intent,code,receiver)
                  
                  X 1 Reply Last reply
                  0
                  • J jalomic

                    @xmaze said:

                    iqsrc://-f 1090000000 -s 2000000 - a 127.0.0.1 -g 100

                    For QtAndroid::startActivity you must create intent first !

                    QAndroidJniObject url=QAndroidJniObject::fromString("iqsrc://-f 1090000000 -s 2000000 - a 127.0.0.1 -g 100");
                    QAndroidJniObject intent=QAndroidJniObject::callStaticObjectMethod("android/content/Intent","parseUri","(Ljava/lang/String;I)Landroid/content/Intent;", url.object<jstring>(),0x00000001);
                    QtAndroid::startActivity(intent,code,receiver)
                    
                    X Offline
                    X Offline
                    xmaze
                    wrote on last edited by
                    #9

                    @jalomic

                    Oh my Got, Thank you very much!! This is very complicated, i couldn't find it, never!!

                    J 2 Replies Last reply
                    0
                    • X xmaze

                      @jalomic

                      Oh my Got, Thank you very much!! This is very complicated, i couldn't find it, never!!

                      J Offline
                      J Offline
                      jalomic
                      wrote on last edited by
                      #10

                      @xmaze =) There is an much easier way
                      QDesktopServices::openUrl((QUrl("iqsrc://-f 1090000000 -s 2000000 - a 127.0.0.1 -g 100"))

                      or just from QML

                      onClicked: Qt.openUrlExternally(iqsrc://-f 1090000000 -s 2000000 - a 127.0.0.1 -g 100")

                      X 1 Reply Last reply
                      0
                      • X xmaze

                        @jalomic

                        Oh my Got, Thank you very much!! This is very complicated, i couldn't find it, never!!

                        J Offline
                        J Offline
                        jalomic
                        wrote on last edited by
                        #11

                        @xmaze And it is very interesting for me. Does it work startActivity as i showed befor ? I have no chance to check it

                        X 1 Reply Last reply
                        0
                        • J jalomic

                          @xmaze =) There is an much easier way
                          QDesktopServices::openUrl((QUrl("iqsrc://-f 1090000000 -s 2000000 - a 127.0.0.1 -g 100"))

                          or just from QML

                          onClicked: Qt.openUrlExternally(iqsrc://-f 1090000000 -s 2000000 - a 127.0.0.1 -g 100")

                          X Offline
                          X Offline
                          xmaze
                          wrote on last edited by
                          #12

                          @jalomic
                          Thanks, but how can i call the intent? i mean the other Application!

                          1 Reply Last reply
                          0
                          • J jalomic

                            @xmaze And it is very interesting for me. Does it work startActivity as i showed befor ? I have no chance to check it

                            X Offline
                            X Offline
                            xmaze
                            wrote on last edited by
                            #13

                            @jalomic

                            QAndroidJniObject url=QAndroidJniObject::fromString("iqsrc://-f 1090000000 -p 5000 -s 2000000 -a 127.0.0.1 -g 100");
                            QAndroidJniObject intent=QAndroidJniObject::callStaticObjectMethod("marto/rtl_tcp_andro/DeviceOpenActivity","parseUri","(Ljava/lang/String;I)Lmarto/rtl_tcp_andro/DeviceOpenActivity;", url.object<jstring>(),0x00000001);
                            QtAndroid::startActivity(intent,0,0);
                            

                            I tried this code but i have a black screen, i call this in Constructor of the QMainWindow, i am not sure if i call right the Application, i am not sure about the
                            marto/rtl_tcp_andro/DeviceOpenActivity

                            J 2 Replies Last reply
                            0
                            • X xmaze

                              @jalomic

                              QAndroidJniObject url=QAndroidJniObject::fromString("iqsrc://-f 1090000000 -p 5000 -s 2000000 -a 127.0.0.1 -g 100");
                              QAndroidJniObject intent=QAndroidJniObject::callStaticObjectMethod("marto/rtl_tcp_andro/DeviceOpenActivity","parseUri","(Ljava/lang/String;I)Lmarto/rtl_tcp_andro/DeviceOpenActivity;", url.object<jstring>(),0x00000001);
                              QtAndroid::startActivity(intent,0,0);
                              

                              I tried this code but i have a black screen, i call this in Constructor of the QMainWindow, i am not sure if i call right the Application, i am not sure about the
                              marto/rtl_tcp_andro/DeviceOpenActivity

                              J Offline
                              J Offline
                              jalomic
                              wrote on last edited by
                              #14

                              @xmaze Qt.openUrl** does it work ?

                              And replace your "marto/rtl_tcp_andro/DeviceOpenActivity" by "android/content/Intent"

                              1 Reply Last reply
                              0
                              • X xmaze

                                @jalomic

                                QAndroidJniObject url=QAndroidJniObject::fromString("iqsrc://-f 1090000000 -p 5000 -s 2000000 -a 127.0.0.1 -g 100");
                                QAndroidJniObject intent=QAndroidJniObject::callStaticObjectMethod("marto/rtl_tcp_andro/DeviceOpenActivity","parseUri","(Ljava/lang/String;I)Lmarto/rtl_tcp_andro/DeviceOpenActivity;", url.object<jstring>(),0x00000001);
                                QtAndroid::startActivity(intent,0,0);
                                

                                I tried this code but i have a black screen, i call this in Constructor of the QMainWindow, i am not sure if i call right the Application, i am not sure about the
                                marto/rtl_tcp_andro/DeviceOpenActivity

                                J Offline
                                J Offline
                                jalomic
                                wrote on last edited by
                                #15

                                @xmaze just copy and paste my code of creating intent

                                X 1 Reply Last reply
                                0
                                • J jalomic

                                  @xmaze just copy and paste my code of creating intent

                                  X Offline
                                  X Offline
                                  xmaze
                                  wrote on last edited by
                                  #16

                                  @jalomic code and receiver is not something, i change this to null.

                                  ok, it calls the other app but how can i wait for the other app to complete the intialitation before to process the qt app. I am not sure also if all the arguments are right, i have to make some tests and i write the results the next hours!
                                  thanks

                                  1 Reply Last reply
                                  0
                                  • X Offline
                                    X Offline
                                    xmaze
                                    wrote on last edited by
                                    #17

                                    @jalomic

                                    Thank you it's working!!
                                    I made a workaround, i put a sleep() function for 4 seconds to wait until the other App is started!!

                                    J 1 Reply Last reply
                                    0
                                    • X xmaze

                                      @jalomic

                                      Thank you it's working!!
                                      I made a workaround, i put a sleep() function for 4 seconds to wait until the other App is started!!

                                      J Offline
                                      J Offline
                                      jalomic
                                      wrote on last edited by
                                      #18

                                      @xmaze Work what ? QDesktopServices::openUrl ? Or Intent ? Did you try openUrl ?

                                      X 1 Reply Last reply
                                      0
                                      • J jalomic

                                        @xmaze Work what ? QDesktopServices::openUrl ? Or Intent ? Did you try openUrl ?

                                        X Offline
                                        X Offline
                                        xmaze
                                        wrote on last edited by
                                        #19

                                        @jalomic the intent the intent, i didn't try the other solution!

                                        J 1 Reply Last reply
                                        0
                                        • X xmaze

                                          @jalomic the intent the intent, i didn't try the other solution!

                                          J Offline
                                          J Offline
                                          jalomic
                                          wrote on last edited by
                                          #20

                                          @xmaze Amazing =)

                                          X 1 Reply Last reply
                                          0

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved