Install
$ agentstack add skill-krutikjain-android-agent-skills-android-permissions-activity-results ✓ 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 Permissions Activity Results
When To Use
- Use this skill when the request is about: android permission request flow, activity result api android, camera permission in android app.
- Primary outcome: Use modern permission requests, Activity Result APIs, and capability-gated UX in Android flows.
- Read
references/patterns.mdwhen you need the picker-vs-permission matrix or API-level behavior checklist. - Read
references/scenarios.mdfor photo picker, notification permission, and limited media access examples. - Handoff skills when the scope expands:
android-media-files-sharingandroid-testing-ui
Workflow
- Start with the capability the user needs, not the permission name: photo picker, document picker, camera capture, or notification opt-in often avoids broader runtime permissions.
- Choose the right Activity Result contract and keep the launcher in a stable lifecycle owner such as an activity, fragment, or remembered Compose launcher.
- Model the full permission state space explicitly: granted, denied, permanently denied, limited/selected access, one-time access, and settings-based recovery.
- Account for API-level differences such as
POST_NOTIFICATIONSon Android 13+, approximate vs precise location, background location as a separate flow, and Android 14 selected-photos access. - Re-check capability on return from settings or picker flows, then validate rotation, process death, and denial recovery instead of assuming the happy path.
Guardrails
- Treat loading, empty, error, offline, and permission-denied states as first-class UI states.
- Do not launch permission or picker contracts directly from composition without a user action or explicit side effect.
- Prefer the narrowest capability surface available, such as Photo Picker or SAF, over broad storage permissions.
- Keep permission recovery testable: rationale, settings redirect, denied state, and post-return revalidation.
Anti-Patterns
- Assuming the happy path is enough for product flows.
- Repeatedly re-prompting after denial instead of offering a clear settings or alternate-path recovery.
- Requesting media or storage access when the Photo Picker or document contracts are enough.
- Treating Android 14 selected-photos access as full media-library access.
Review Focus
- Can the feature use a picker or contract instead of a runtime permission?
- Does the flow handle denial, limited access, and return-from-settings correctly?
- Are permission launches owned by the right lifecycle scope and initiated at the right time?
- Are platform-specific behaviors called out for Android 13+ and Android 14+ where relevant?
Examples
Happy path
- Scenario: Find the repo's Activity Result and permission surfaces before proposing a flow change.
- Command:
rg -n "rememberLauncherForActivityResult|RequestPermission|RequestMultiplePermissions|PickVisualMedia|OpenDocument|TakePicture" examples
Edge case
- Scenario: Review notification and media access paths for API-level-specific behavior.
- Command:
rg -n "POST_NOTIFICATIONS|READ_MEDIA_|READ_EXTERNAL_STORAGE|PickVisualMedia" examples
Failure recovery
- Scenario: Differentiate permission prompts from media-sharing and testing requests.
- Command:
python3 scripts/eval_triggers.py --skill android-permissions-activity-results
Done Checklist
- The chosen contract or picker is narrower than a broad permission where possible.
- Denied, permanently denied, limited, and settings-return states are all modeled.
- API-level differences are called out for the affected Android versions.
- Recovery UI and observability are explicit instead of implied.
Official References
- https://developer.android.com/training/permissions/requesting
- https://developer.android.com/training/basics/intents/result
- https://developer.android.com/training/data-storage/shared/photopicker
- https://developer.android.com/about/versions/14/changes/partial-photo-video-access
- https://developer.android.com/develop/ui/views/notifications/notification-permission
- https://developer.android.com/privacy-and-security/minimize-permission-requests
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.