# Android Media Files Sharing

> Use modern Android file, media, picker, FileProvider, and share-sheet APIs with minimal permissions.

- **Type:** Skill
- **Install:** `agentstack add skill-krutikjain-android-agent-skills-android-media-files-sharing`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [krutikJain](https://agentstack.voostack.com/s/krutikjain)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [krutikJain](https://github.com/krutikJain)
- **Source:** https://github.com/krutikJain/android-agent-skills/tree/main/.github/skills/android-media-files-sharing

## Install

```sh
agentstack add skill-krutikjain-android-agent-skills-android-media-files-sharing
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## 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-results` only when the hard part is the runtime permission flow itself.
- Handoff skills when the scope expands:
- `android-permissions-activity-results`
- `android-security-best-practices`

## Workflow
1. 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.
2. Choose the narrowest platform surface first: Photo Picker, SAF contracts, `FileProvider`, or chooser-based sharing before considering broad storage permissions.
3. Keep file ownership and URI grants explicit with app-private storage, MIME types, temporary grants, and stable authorities.
4. Validate return flows, absent-capability fallbacks, and recipient-app interoperability instead of testing only the happy path.
5. 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 of `FileProvider` URIs.
- 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/photopicker)
- [https://developer.android.com/training/data-storage/shared/documents-files](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/secure-file-sharing/setup-sharing)
- [https://developer.android.com/training/sharing/send](https://developer.android.com/training/sharing/send)
- [https://developer.android.com/topic/performance/graphics/picker](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](https://github.com/krutikJain)
- **Source:** [krutikJain/android-agent-skills](https://github.com/krutikJain/android-agent-skills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-krutikjain-android-agent-skills-android-media-files-sharing
- Seller: https://agentstack.voostack.com/s/krutikjain
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
