UBports Robot Logo UBports Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    apparmor picture_files_read

    Scheduled Pinned Locked Moved App Development
    15 Posts 4 Posters 2.2k Views 2 Watching
    Loading More Posts
    • 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.
      • CraigC Offline
        Craig @AppLee
        last edited by

        @AppLee I'm getting my C++/SDL app to receive pictures from the content hub as you suggested. I hope this can serve as a half-way tutorial for others out there. But it's not complete. Here is what I have so far:

        In my manifest.json, I have "content-hub" in the hooks section:

        "hooks": {
        	"SDLTest": {
        		"apparmor": "SDLTest.apparmor",
        		"desktop": "SDLTest.desktop",
        		"content-hub": "SDLTest-contenthub.json"
        	}
        

        In SDLTest-contenthub.json I have "pictures":

        {
        "destination": [
        "pictures"
        ]
        }

        In SDLTest.apparmor I have "content_exchange":

        {
        "policy_groups": [
        "audio",
        "content_exchange"
        ],
        "policy_version": 16.04
        }

        After I run "clickable", I open the Gallery app, select a photo and click on the link icon, I see my app listed. After I selected my app, I used "adb shell" and found the photo I selected on my phone at this system path:
        /home/phablet/.cache/sdltest.craig/HubIncoming/18

        And I had read/write access to the photos with C++. This part works great so far!

        But all I need to understand now is how to I get my app to LAUNCH Gallery when a user clicks a button inside my app. I'm using purely C++ and SDL. I imagine it would work something like this:

        if ( event.type == SDL_FINGERDOWN ) {
        SomeFunctionHere(LaunchGallery);
        }

        Detailed instructions would be appreciated. You wont bore me.

        flohackF AppLeeA 2 Replies Last reply Reply Quote 0
        • flohackF Offline
          flohack @Craig
          last edited by

          @Craig I dont think that its supported for an App to launch another app. You could export a picture and then the suer canchoose Gallery as a target. But so far just launching a specific app is not possible. Its also hard to make this stable since what if Gallery app is not installed, has been renamed etc ?

          My languages: πŸ‡¦πŸ‡Ή πŸ‡©πŸ‡ͺ πŸ‡¬πŸ‡§ πŸ‡ΊπŸ‡Έ

          CraigC 1 Reply Last reply Reply Quote 0
          • AppLeeA Offline
            AppLee @Craig
            last edited by

            @Craig
            Hi, and good job on this.
            Now you want to use the content hub the other way around and export a picture from your app.

            You'll have to add ContentHandler.Source to your SDLTest-contenthub.json
            You should read this : http://docs.ubports.com/en/latest/appdev/guides/contenthub.html#exporting

            As Flo wrote, you cannot force an app, the user has to select the destination app.

            CraigC 1 Reply Last reply Reply Quote 0
            • CraigC Offline
              Craig @flohack
              last edited by

              @Flohack What about when the Messaging app launches the content hub so I can attach an image to a text message?

              AppLeeA 1 Reply Last reply Reply Quote 0
              • AppLeeA Offline
                AppLee @Craig
                last edited by

                @Craig
                What Florian meant is that an app cannot directly opens another one (even less a specific one).
                You have to go through the Content Hub to do so, but it's not the messaging app opening the gallery...

                CraigC 1 Reply Last reply Reply Quote 0
                • CraigC Offline
                  Craig @AppLee
                  last edited by

                  @AppLee Why would I want to export a picture from my app when that's not what it needs to do? It needs to acquire a picture from the content hub, namely Gallery or File Manager. Sorry, maybe I didn't make it clear what I'm trying to do.

                  1 Reply Last reply Reply Quote 0
                  • CraigC Offline
                    Craig @AppLee
                    last edited by

                    @AppLee Sorry, I must not be using the right vocabulary. Basically, like how the Messaging app opens the content hub and you can choose from Gallery or File Manager, then a photo is sent to a directory where the Messaging app can access it. How can I get my C++ app to open/launch/etc the content hub? I have already added the required code for my app to be listed as a "destination" in the content hub. I just need to understand how to create an event/link/etc in C++ that will open the content hub for my app's users. Thank you!

                    AppLeeA 1 Reply Last reply Reply Quote 0
                    • AppLeeA Offline
                      AppLee @Craig
                      last edited by

                      @Craig
                      Oh sorry, I ddin't fully understand your question.

                      So you can refer there : http://docs.ubports.com/en/latest/appdev/guides/contenthub.html#importing
                      You can call the ContentPeerPicker in your code to display the app choice to import a Picture from.

                      CraigC 1 Reply Last reply Reply Quote 0
                      • CraigC Offline
                        Craig @AppLee
                        last edited by

                        @AppLee I read that Importing section, thanks. What language is that written in? Qml? My app is written in C++. Is there a way to open the content hub with C++? Or is there some headers I can put in my C++ program that will enable a new function to do that? I can't seem to find documentation for C++.

                        AppLeeA 1 Reply Last reply Reply Quote 0
                        • AppLeeA Offline
                          AppLee @Craig
                          last edited by

                          @Craig
                          Yes it's QML, I don't know about C++ only.
                          Can you consider some QML for the front part of your app ?
                          It's not difficult to learn and use.

                          CraigC 1 Reply Last reply Reply Quote 0
                          • CraigC Offline
                            Craig @AppLee
                            last edited by

                            @AppLee Okay, I tried it. I did "clickable create" and selected the C++ binary option.

                            When I run "clickable" the main.cpp file calls qml/Main.qml and it says "Hello World!" on my touch device.

                            Now, I tried to swap the code in Main.qml for this code here:
                            https://api-docs.ubports.com/sdk/apps/qml/Ubuntu.Content/ContentHub.html
                            The code just below "Example usage for importing content:"

                            When I run "clickable", clickable reports: /bin/sh: 1: Syntax error: "(" unexpected

                            Is there a mistake in the documented code? What do I need to put in the Main.qml file so it brings up the content hub?

                            Thanks!

                            1 Reply Last reply Reply Quote 0

                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                            With your input, this post could be even better πŸ’—

                            Register Login
                            • First post
                              Last post