SAF: App Inventor implementation of Storage Access Framework

v1.2 is quite stable and there are very few minor bugs which will be fixed in upcoming version.
The next version will bring some breaking changes due to function name change. ( CopyDocumentToASD -> CopyDocumentToFile )

image

And a new block sponsored by @Alexandre_Gorine :grinning:

image

Other than these, there will be several internal improvements to make SAF reading/writing faster.

Do let me know if there is anything else you would like to see.

There are now dozens of versions of your great extension. Also several variants of the 1.2 version. The version that can be downloaded under the first post is v1.1 from 2021. My last used version v1.2 is from 2023-05-02.

What is the current version, when is it from and where can it be found?

1.2 is latest. :sweat_smile:

Thanks, updated first post now.

Here are just 3 examples (I could probably list more):

grafik

grafik

grafik

(So the versions should be 1.2.1, 1.2.2, ...)

Last one is latest.
And now it seems I'll have to release v1.3 :joy:

1 Like

ChangeLog Version 1.3

New Blocks
image
Both blocks sponsored by @Alexandre_Gorine :clap:

image

Changes

  • Some internal changes in InitialDir method to make it usable on Android < 10
  • CopyDocument will try to create document manually if Copy is not supported for given parent uri
    It may work so worth trying.

com.sunny.saf.aix (29.2 KB)

1 Like

:ok_hand: Works, tested on Android 13.

1 Like

Hello,
I have a project with several screens and in one screen I use the SAF extension.
If I use version 1.2 of SAF, I can create a build (apk) of the project.
If I use version 1.3, the error message appears after selecting the Build -> .apk menu item:
Error generating Yail for screen 6428241276305408_BackupLOCAL: : h is undefined. Please fix and try packaging again.

What could it be?

Greetings Frank

Post aia.

@vknow360,
I looked more closely again.

In the version 1.2 there exist "CopyDocumentToASD" - see picture.

This doesn't seem to exist in this version 1.3 anymore, right?

Frank

There are two versions of the SAF procedure OpenSingleDocument. The older one which I have used for several years has three inputs: title, type, and extraMimeTypes. The most recent has four inputs: title, initialDir, type, and extraMimeTypes. Could you clarify how the initialDir input is written and used? Is it essential? Is the old version now deprecated? Thanks for all the work on this very useful SAF extension. Peter

1 Like

No. No.

2 Likes

Thanks Anke. That worked well.

I guess I replaced it with CopyDocumentToFile method, you have more control over output path in that.

@vknow360

Thank you very much for your answer.
I adjusted my blocks accordingly and it works perfectly.

A great extension that helps me to overwrite and copy files not created by the app. Thanks again.

Frank

1 Like

Awesome!

How can I download this extension? Okay, I found the link. I downloaded the extension.

After reading this specific post/comment, I got a doubt. Can we open a text file from somewhere in the phone memory and 1) read it 2) Process it using other blocks (eg, reading base64 text and processing it using other blocks to get back the image file) 2) Update the text (means adding/editing the file) and 3) Store the updated text in ASD?

Hi Sunny

Would it be useful to include your filepath from contenturi block in the SAF extension?

3 Likes