MFile - a modified version of Sunny's `EFile` extension - Shared folders - storage permissions - Android 11+

Here is a modified version of Sunny’s EFile extension, which added some methods that are needed (among others things) for testing purposes with Companion & AKP. Because if you try to save in one of the Shared folders (/Documents or /Download) first with Companion it is not possible to do this without deleting the saved text file before testing with the APK and vice versa (at least on Android 11+). So the Delete & FileExists & API level methods are needed.

The Delete method exists with the File component, but incorrectly requests storage permissions on Android 11+ and on top of that it doesn’t work. In addition the File.Exists methode does not work too. These bugs do not exist with this extension.

MFile.aix (16.2 KB)

These are the (new) blocks:

The File component has numerous bugs (including permission bugs). Therefore, I recommend using this extension (MFile) until the bugs with the File component are fixed.

Here is a simple test app (save a text with the File comp. in the ASD or the MFile ext. in the Shared folder /Documents:
MFile.apk (5.2 MB)


EDIT: a working example including aia file can be found here File is not saved, permissions are not recognized - #30 by Taifun

The File comp. requests storage permission. The MFile ext. does not require any storage permissions on Android 11+. Of couse, on Android < 11 storage permissions are needed to save / read to / from external storage.


I’m thinking that you could’ve made a PR to his extension so that you don’t have to make another one with a different name. Sorry if I’m wrong, but felt like that would’ve been easier for you and others.

@Jaxparrow I have no idea what you’re trying to tell me.

And how could that have been easier for me or others? It would have only created more confusion. Android’s file system is complicated enough, as most have painfully discovered. In addition, there are numerous bugs with Kodular in general and with the File component in particular. The EFile extension was built prior to the introduction of targetSdkVersion = 30 and therefore did not address a number of issues that have arisen since then.

Therefore I created this new (modified) version.

1 Like

I’m sorry that i didn’t explain it clearly before in my previous post.

I’m saying it seems like creating Firewolf browser because there’s a bug in Firefox browser. I’m saying that way, u mentioned “It’s a modified version of EFile” where it’s an OSS. I’m asking if it’s necessary to create another extension instead of fixing that ( EFile ).

There is something called “copyright” (at least in Germany, but certainly not only there). So I cannot simply alter someone else’s work without the author’s specific permission.

Maybe we can leave it at that now.


@bodymindpower The point being made is that…

  • You could’ve submitted a Pull Request to and patiently waited for it to be merged… As @Jaxparrow mentioned.
  • In addition to that, you’re technically making a duplicate of two extensions, not only one… An extension of mine that already does what you consider “new” in “your” extension.

Complementing the @Jaxparrow And @hammerhai’s answers …


I have no idea what your problem with that is.
It gets ridiculous over time. :upside_down_face:
I can also remove the extension if you wish.

1 Like

That would be?

I don’t think you pay adequate time to the community to know that one of my most popular extensions actually handled this by itself. Of course, I’m not imploring others to download it, since that would be hypocritical of me, but because you asked which extension… I’ll link directly to the post as it is a bit hidden.

Skip to “Scoped storage.”

@hammerhai didn’t you stop developing your extensions one year ago?
this was your announcement

I apologize to those of you who this announcement may be an inconvenience to, but Moon will not be receiving any maintenance, major, or minor upgrades. The reasoning behind this change of course will be announced at a later date in a separately created topic.

It’s been removed from GitHub permanently.

also there is no documentation available anymore, I just tried again… error code 404…
EDIT: meanwhile I found you here hammerhai (Nathan) · GitHub but all App Inventor projects are not available anymore…

PS: personally I like the modified version from @bodymindpower… yes, you can add a PR and hope some day it will be included… or you just can do it yourself and provide a running version immediately…


Not work.

Runtime Error

java.lang.NoSuchMethodError: No direct method <init>(Lcom/aquib/clickz/ClickZ;Lcom/google/appinventor/components/runtime/AndroidViewComponent;)V in class La; or its super classes (declaration of 'a' appears in /storage/emulated/0/Android/data/io.makeroid.companion/files/assets/external_comps/de.bodymindpower.MFile/de.bodymindpower.MFile.jar)
*Note:* You will not see another error reported for 5 seconds.
1 Like

Post the aia.

Hello, please drop the project aia

Is storage permission required for the following app?

WhatsApp Status Saver App
QR Code Generator App

if yes please guide me how to Read write storage permission block for these apps. thanks a lot …we r waiting