Install
$ agentstack add skill-krutikjain-android-agent-skills-android-media-files-sharing ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
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
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: krutikJain
- Source: krutikJain/android-agent-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.