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

I'm using the FilePicker extension by Jewel, and I give the option to pick a file and open it. However, whenever I choose a file, the app crashs. I'm using the companion to test it. Here's my code:



Note that I'm only using audio files to test, in the future you'll be able to open all supported file types.

1 Like

Use logcat to find out more

Taifun

1 Like

How do I do this with the companion app?

1 Like

exactly as it is described in that link...
start logcat, then elicit the issue in the companion app, after that stop logcat... you might want to copy the output into a textfile and add it here into this thread

Taifun

1 Like

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

1 Like

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