SAF: App Inventor implementation of Storage Access Framework

The question was just about the content uri being read by other components, e.g. it works with the image component:

not had a chance to test some of the others yet.

4 Likes

Could you please provide an example of how one uses the flags in order to set persistent permissions? I presume this saves the user having to visit the document picker again when restarting the app?

4 Likes

With this extension you really have to bite through and some users might lose teeth in the process. :wink: :grinning:

6 Likes

I am prepared to champion those users, in order to save their teeth ;), and ask Sunny how all the various elements of this extension work.

5 Likes

Sure, here it is:

Also data gets kind of binded to the app and you don't lose access to it even after multiple reboots.

5 Likes

Epic work :star_struck: :+1:

5 Likes

Thank you..:+1:

3 Likes

What is the syntax for setting an initialDir?
image

Whatever I put in here, I am just taken to the last location I selected in the document picker ?

Ah, i just tried a full uri and this worked, e.g.

content://com.android.externalstorage.documents/tree/primary%3A/document/primary%3AMusic

opened at the Music folder

will this part be the same on all devices:

content://com.android.externalstorage.documents/tree/primary%3A/document/primary%3A

If I select the ASD I get a different path:

content://com.android.externalstorage.documents/tree/primary%3AAndroid%2Fdata%2Fedu.mit.appinventor.aicompanion3%2Ffiles/document/primary%3AAndroid%2Fdata%2Fedu.mit.appinventor.aicompanion3%2Ffiles

this is all using the companion...

5 Likes

Yes, it doesn't matter whether there is an empty string or a special path there.

4 Likes

... and you cannot select

  1. the root dir of the external storage /storage/emulated/0 and
  2. /Download

But you can select /Downloads.

4 Likes

If anyone want to create a
empty folder after selecting the in "open Document Tree" by using "create document" .
then mimetype is following
....
vnd.android.document/directory

3 Likes

This

image

doesn't work

This returns the root dir (/storage/emulated/0) equivalent

2 Likes

I was also hoping that these blocks would return a list of just files, but it also returns directories. I must be missing something? (I also tried around the other way using the IsTreeUri block, but that also returns files and directories)...

2 Likes

As I said,

But you cannot select this path / dir.

2 Likes

You should use GetMimeType block there.

2 Likes

Great, these blocks return the directories:

using a not block on the mimetype test should return files only :+1:

2 Likes

Well you needn't type dir mime type there.
Please check properties.

2 Likes

Yes :upside_down_face:

image

4 Likes
4 Likes

I can't say how long you can access it, but you still can access /Android subdirs.

5 Likes