Android 11 and Storage-File

Hello Anke. My File1.LegacyMode block stopped working yesterday. Any suggestions ?

Thanks,

Carlos

It would really help if you provided a screenshot of your relevant blocks, so we can see what you are trying to do, and where the problem may be.

To get an image of your blocks, right click in the Blocks Editor and select "Download Blocks as Image". You might want to use an image editor to crop etc. if required. Then post it here in the community.

Taifun


Trying to push the limits! Snippets, Tutorials and Extensions from Pura Vida Apps by icon24 Taifun.

Will send snapshot in 45 mins.

It is pretty simple. My local file procedure where i write or read or check for presence, must start with File1.LegacyMode True in order for File1 to work. It was recommended by you or Anke a few months back with the warning that it was going to stop working in a few month.

I guess a few months was yesterday. On err i check my blocks and LegacyMode block was floating by itself. It was not connected to a File1 control, so AI2 doesnt recognize it any more.

I deleted LegacyMode block and error warning disappeared but rest of File1 blocks failed, can't read/write or check for presence.

This is apparently an error of omission transitioning into nb187 File Scope handling.
There should probably be some extra code at app load time to transition the old blocks and attributes to the new system.

P.S. some manual conversion guidance from @ewpatton would help here in the meantime.

(added to FAQ)

  • On Android 10 devices requestLegacyExternalStorage will continue to work regardless of targetSdk
  • On Android 11 devices for new apps targeting SDK 30 requestLegacyExternalStorage is ignored / false.

The block before File1.Delete was File1.LegacyMode=True

As of yesterday, the LegacyMode block was disconnected from the do block, it was on its own on the board.

So the bad LegacyMode block is my fault. I marked the method as deprecated and the blocks editor handles this differently than it used to. I will need to write an upgrader to handle this correctly. In the meantime, you will want to replace the LegacyMode block with this:

2 Likes

It worked!!

Thank you,

Carlos

I can confirm, my old apps continue to access to documents folder, but I can no longer modify or recompile them.
No solution to date?

1 Like

Purtroppo..cmq io ho cercato di superare il problema..usando al posto di File..il caro e vecchio TinyDB.

try the SAF extension

Taifun

2 posts were split to a new topic: Importing a sqlite database in Android 11

Can I list a subdir (Documents) created with filemanager in the asd of my application ?
/storage/emulated/0/Android/data/appinventor.ai_myname.appname/files/Documents

Yes, but how about just trying this out for yourself before asking any questions here.
(Only two simple blocks are needed for this.)

I have 2 buttons with text Documents and Download an 2 subfolders as above.
Attached my blocks

Thank you, if I understand well my mistake is having created the subdir with filemanager

This shouldn't make a difference.

I tried with these blocks, the documents folder was created, then i copied in that folder my documents, but the app does not run.