[Free] JewelFilePicker Extension : Pick Any Type Of File From Storage

Try this:

FileTools extension from @vknow360here and here.

Note:

  1. You cannot pick a file from a removable (micro) SDcard with this extension.
  2. You must request READ permission on Android 11+ and WRITE on Android < 11.

Note: There is a bug in this extension:
WRITE permission MUST be declared in the Manifest on Android 11+.

Otherwise you get this error message:

Permission error

As a workaround set → DefaultFileScope = Legacy (in the Designer).

FilePicker.aia (51.4 KB)

@JEWEL
@justaquestion

Hi Anke, I did as you described above with the work-around DefaukltFileScope in Designer = "Legacy" (and I even tried it out with your example aia), but I still get the message "Permission was not granted". On my Samsung with Android 12, SdkVersion = 31.
Any clue?
KR, Oli

Yes, WRITE permission must now also be requested on Android 11+ in order for the extension to work on Android 11+ devices, which of course makes no sense at all since WRITE permission no longer exists there.

Thx, Anke.
Does that bottomline mean, that uploading any file from e.g. /Documents/ or /Download/ is not at all possible if Android > 11+? Or is there any work-around possible (with e.g. other extensions)?
I only want to pick a simple txt file which I have edited in my smartphone and after picking, i want to upload it to a webspace with SFTP (which itself is no issue, just I cannot "grab" that file so far).

If you edited the text file on your phone (outside of your app), this text file is no longer created by your app itself. In this case you must use SAF to access it on Android 11+.

See also my guide "How to access media and non-media files on Android 11+" → here.

1 Like

The following question remains to be clarified:
Why are you (the user) editing the text file on your device? Can't this be done within the app itself?

Ah, yes, now I remember: SAF is the way!
I used it in a previous project, but forgot :wink:
Have implemented SAF now again, still works fine.
Thanks!

Rgdg your question:
I have written an app that replaces html-files of a website on server-side. I keep downloading and uploading them with SFTP from my hone to the website.
I do not really want to EDIT those HTML-files, but i need to have them in an normal directory ("external storage") and need to be able to upload them from there.
And the App-specific directory is not visible to me as a user.

Where do these HTML files come from, who created and edited them? I am assuming they are not created/edited on a mobile phone. So why not upload them to the server via the computer. Then they could be downloaded from there with the app, so that (read) access without SAF is possible on all Android versions (for the ASD and the Shared folders).

How to ask for PDF files on Android 11+ ?

:question:

How to pick Pdf from the device ??

blocks

@Anke Sorry for the late reply, but my problem was solved with your first answer :slight_smile: Thank you for that!
Those HTML files are actually partly composed by the user of my app. After editing, the files shall get uploaded to the webserver of the user.
KR, Oliver

Hi,

is it possible to import a csv-document (e.g. from the folder "Downloads") using the File Picker. It doesnt work for me.

Thanks in advance

See here Some basics on Android storage system

I.e. you can use the file picker extension only if the file was previously stored by your app...
If not, you have to use SAF

Taifun

Thanks a lot, are there examples on how to do this?

Show your blocks.

And tell us if the CSV file was created by your app. If not, as @Taifun said you must use SAF on Android 11+. EDIT: But then you can't pick a non-media file from the Shared folder /Download, but from the non-shared folder /Downloads. (see my post #37)

See also here:

I have to admit, I don't really get along with the SAF -extension, maybe my knowledge therefore is just too limited. With only the documentation provided I am not able to simply open a csv-file (I want to write the data in a Database later).

and the csv wasn't created by the app.

This is all you need:

Note:
And I've to correct myself, because if you use the OpenSingleDocument block, you can also pick a non-media file from the Shared folder /Download. (But you cannot open (select) the folder itself using OpenDocumentTree.)

2 Likes