🏜️ Single & Multiple image Picker, video Picker, audio Picker, documents Picker, etc

Extension Name : RYimagepicker

All Blocks Images

Demo aia : RYimagepicker.aia (60.6 KB)
Test Apk : https://drive.google.com/file/d/1xKCOjr2Of9p6km65gm7L9TLH2LEC1CYm/view?usp=drivesdk
Extension : RYimagepicker.aix (11.7 KB)

🧩 Key Features

✅ Supports Single & Multiple file selection. ✅ Works with all file types (image, video, audio, documents, etc.). ✅ Uses Storage Access Framework (modern Android API — safer and future-proof). ✅ Returns detailed metadata (name, mime type, size, pseudo path). ✅ Option to persist URI permissions for long-term file access. ✅ No need for “READ_EXTERNAL_STORAGE” on Android 11+ (automatically handled). ✅ Fully compatible with Niotron, Kodular, MIT App Inventor, AI2 clones. ✅ Clean, optimized, and bug-free — no deprecated APIs.

🧠 How It Works

This extension uses Android’s ACTION_OPEN_DOCUMENT intent, which is part of the Storage Access Framework (SAF). It does not depend on legacy external storage permissions, ensuring better compatibility with Android 10–14+.

After picks file extension fetches:
●Display name
●MIME type
●File size
●Safe, persistent access URI

After Single Pick Return Values Multiple Pick Return Same Values in List

Property Example
URI content://com.android.providers.media.documents/document/image%3A4123
Path content://com.android.providers.media.documents/document/image%3A4123
Name photo.jpg
MIME Type image/jpeg
Size 2560345

⚠️ Limitations

●No real file path: SAF returns secure content URIs, not /storage/... paths. Use ContentResolver streams if you need to read/write. ●Some file managers may not support multiple pick (varies by Android version). ●WRITE access is limited unless file was created or user granted explicit permission. ●Large selections (50+ files) might slow down on low-end devices. ●Intent-based operation — picker opens system UI ( not inside WebViewer ).

🧾 Technical Notes

●Works with Android 7+ (SAF introduced in Android 5.0). ●SAF Uris are not direct file paths — use content resolvers or upload via URI streams. ●If PersistUriPermission = true, app keeps access to selected files even after restart. ●maxCount parameter in MultiplePick is for future updates (currently informational).

📜 Credits

Build in : Niotron IDE
Developer: Rizzu Idrisi (RY)
Language: Java
Framework: App Inventor Components SDK
Version: 1
License: Free to use and modify (credit appreciated)
1 Like

Extension Builder credit ?

You would need to provide source code for other to modify

2 Likes