Android media files sharing
Skill krutikJain/android-agent-skills/.github/skills/android-media-files-sharing
Android skills repository for Kotlin, Compose, XML, testing, CI, release work, and legacy upgrades
npx -y skills add krutikJain/android-agent-skills --skill android-media-files-sharingAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 14 stars14 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use modern Android file, media, picker, FileProvider, and share-sheet APIs with minimal permissions.
SKILL.md
4.6 KB, 792 tokens by cl100k_base, as published. Nobody here has run it
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
What ships with it: 5 files
3.6 KB alongside SKILL.md, 1 of them executable
agents/
- openai.yaml360 B
references/
- official-links.md741 B
- patterns.md1.5 KB
- scenarios.md616 B
scripts/
- run_examples.shruns427 B
Gives 0 of the 12 instructions most media documents skills give in 792 tokens
Counted across 157 of the 158 authors here whose files we hold, read 2026-08-07
- Provide posting time recommendationsin 7 of 157, across 5 files
- Track metrics over time to identify trendsin 6 of 157, across 2 files
- Read marketing context file before startingin 6 of 157, across 5 files
- Choose platforms based on audience presencein 6 of 157, across 4 files
- Adapt tone for each platformin 6 of 157, across 4 files
- Ensure data completeness before analysisin 5 of 157, across 1 file
- Compare metrics within same time periodsin 5 of 157, across 1 file
- Account for platform-specific benchmarksin 5 of 157, across 1 file
- Separate organic and paid metricsin 5 of 157, across 1 file
- Include context when interpreting resultsin 5 of 157, across 1 file
- Keep tweets under 280 charactersin 5 of 157, across 3 files
- Download top-K results with an attribution sidecarin 5 of 157, across 2 files
Said here and by no other author read
- choose the narrowest platform surface first
- keep file ownership and URI grants explicit
- validate return flows and absent-capability fallbacks
- treat recipients outside your app as untrusted
- keep exported authorities and MIME types explicit
- hand off runtime permission complexity after sharing contract is correct
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.