android-media-files-sharing
Skill14 starsChanged 8 months agoMITView on GitHub
Use modern Android file, media, picker, FileProvider, and share-sheet APIs with minimal permissions.
In this repository68 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .cursor/rules/android-architecture-clean.mdcCursor rule
- .cursor/rules/android-ci-cd-release-playstore.mdcCursor rule
- .cursor/rules/android-coil-compose.mdcCursor rule
- .cursor/rules/android-compose-accessibility.mdcCursor rule
- .cursor/rules/android-compose-foundations.mdcCursor rule
- .cursor/rules/android-compose-performance.mdcCursor rule
- .cursor/rules/android-compose-state-effects.mdcCursor rule
- .cursor/rules/android-compose-xml-interoperability.mdcCursor rule
- .cursor/rules/android-coroutines-flow.mdcCursor rule
- .cursor/rules/android-di-hilt.mdcCursor rule
- .cursor/rules/android-emulator-automation.mdcCursor rule
- .cursor/rules/android-gradle-build-logic.mdcCursor rule
- .cursor/rules/android-gradle-build-performance.mdcCursor rule
- .cursor/rules/android-kotlin-core.mdcCursor rule
- .cursor/rules/android-local-persistence-datastore.mdcCursor rule
- .cursor/rules/android-material3-design-system.mdcCursor rule
- .cursor/rules/android-media-files-sharing.mdcCursor rule
- .cursor/rules/android-mobile-frontend-design.mdcCursor rule
- .cursor/rules/android-modernization-upgrade.mdcCursor rule
- .cursor/rules/android-modularization.mdcCursor rule
- .cursor/rules/android-navigation-deeplinks.mdcCursor rule
- .cursor/rules/android-networking-retrofit-okhttp.mdcCursor rule
- .cursor/rules/android-performance-observability.mdcCursor rule
- .cursor/rules/android-permissions-activity-results.mdcCursor rule
- .cursor/rules/android-room-database.mdcCursor rule
- .cursor/rules/android-rxjava-to-coroutines-migration.mdcCursor rule
- .cursor/rules/android-security-best-practices.mdcCursor rule
- .cursor/rules/android-serialization-offline-sync.mdcCursor rule
- .cursor/rules/android-state-management.mdcCursor rule
- .cursor/rules/android-testing-ui.mdcCursor rule
- .cursor/rules/android-testing-unit.mdcCursor rule
- .cursor/rules/android-ui-states-validation.mdcCursor rule
- .cursor/rules/android-viewsystem-foundations.mdcCursor rule
- .cursor/rules/android-workmanager-notifications.mdcCursor rule
- android-architecture-cleanSkill
- android-ci-cd-release-playstoreSkill
- android-coil-composeSkill
- android-compose-accessibilitySkill
- android-compose-foundationsSkill
- android-compose-performanceSkill
- android-compose-state-effectsSkill
- android-compose-xml-interoperabilitySkill
- android-coroutines-flowSkill
- android-di-hiltSkill
- android-emulator-automationSkill
- android-gradle-build-logicSkill
- android-gradle-build-performanceSkill
- android-kotlin-coreSkill
- android-local-persistence-datastoreSkill
- android-material3-design-systemSkill
- android-mobile-frontend-designSkill
- android-modernization-upgradeSkill
- android-modularizationSkill
- android-navigation-deeplinksSkill
- android-networking-retrofit-okhttpSkill
- android-performance-observabilitySkill
- android-permissions-activity-resultsSkill
- android-room-databaseSkill
- android-rxjava-to-coroutines-migrationSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 6 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈6
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 17
Use this skill when the request is about: android file sharing, photo picker android app, fileprovider setup android.
- Distinctive: line 25
Start with the asset movement path: pick existing media, open a document, create/export a file, capture new content, or share app-owned …
- Distinctive: line 27
Keep file ownership and URI grants explicit with app-private storage, MIME types, temporary grants, and stable authorities.
- Distinctive: line 32
Prefer Photo Picker, SAF, and chooser APIs over broad media or storage permissions where possible.
- Distinctive: line 34
Keep exported authorities, MIME types, and cache cleanup explicit.
- Distinctive: line 35
Treat recipients outside your app as untrusted.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Android Media Files Sharing
When To Use
- Use this skill when the request is about: android file sharing, photo picker android app, fileprovider setup android.
- Primary outcome: Use modern Android file, media, picker, FileProvider, and share-sheet APIs with minimal permissions.
- Reach for this skill when the core problem is content URIs, share-sheet flows, picker choice, or app-to-app file exchange. Use
android-permissions-activity-resultsonly when the hard part is the runtime permission flow itself. - Handoff skills when the scope expands:
android-permissions-activity-resultsandroid-security-best-practices
Workflow
- Start with the asset movement path: pick existing media, open a document, create/export a file, capture new content, or share app-owned content to another app.
- Choose the narrowest platform surface first: Photo Picker, SAF contracts,
FileProvider, or chooser-based sharing before considering broad storage permissions. - Keep file ownership and URI grants explicit with app-private storage, MIME types, temporary grants, and stable authorities.
- Validate return flows, absent-capability fallbacks, and recipient-app interoperability instead of testing only the happy path.
- Hand off runtime permission complexity or deeper hardening only after the URI and sharing contract is correct.
Guardrails
- Prefer Photo Picker, SAF, and chooser APIs over broad media or storage permissions where possible.
- Share content with
content://URIs and temporary grants, never raw file paths. - Keep exported authorities, MIME types, and cache cleanup explicit.
- Treat recipients outside your app as untrusted; validate what leaves the app and what comes back.
Anti-Patterns
- Requesting broad media or storage access when Photo Picker or SAF is enough.
- Sharing
file://paths or world-readable files instead ofFileProviderURIs. - Assuming every recipient app handles every MIME type or URI permission correctly.
- Mixing permission-flow design with file-sharing contract design until both become unclear.
Review Focus
- Picker/SAF/FileProvider/chooser selection.
- MIME type, URI authority, and grant lifecycle correctness.
- Minimal-permission media access.
- Recipient-app interoperability and cleanup of temporary files.
Examples
Happy path
- Scenario: Attach and share a task snapshot using the least-privilege API.
- Command:
cd examples/orbittasks-compose && ./gradlew :app:testDebugUnitTest
Edge case
- Scenario: Handle absent picker support or denied media capabilities in the XML fixture.
- Command:
cd examples/orbittasks-xml && ./gradlew :app:testDebugUnitTest
Failure recovery
- Scenario: Separate media/file flows from permission-only or networking-only requests.
- Command:
python3 scripts/eval_triggers.py --skill android-media-files-sharing
Done Checklist
- The platform surface is narrower than a broad storage permission where possible.
- URI authorities, MIME types, and temporary grants are explicit.
- Picker and share-sheet fallbacks are covered.
- Permission-only work is handed off instead of conflated with the sharing contract.
Official References
- https://developer.android.com/training/data-storage/shared/photopicker
- https://developer.android.com/training/data-storage/shared/documents-files
- https://developer.android.com/training/secure-file-sharing/setup-sharing
- https://developer.android.com/training/sharing/send
- https://developer.android.com/topic/performance/graphics/picker
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

