Microphone Permission Manager
Component Detail
Infrastructure
low complexity
mobile
0
Dependencies
2
Dependents
0
Entities
0
Integrations
Description
Handles runtime microphone permission requests on iOS (NSMicrophoneUsageDescription) and Android (RECORD_AUDIO) the first time the user activates speech input. Displays a contextual rationale dialog explaining that the microphone is used exclusively for post-activity note dictation, not for recording conversations. Persists the granted/denied state and surfaces it to dependent components without re-prompting unnecessarily.
microphone-permission-manager
Responsibilities
- Check current microphone permission status at service initialisation
- Request runtime permission with a clear, privacy-focused rationale on first use
- Provide a typed PermissionStatus result to the STT Service and widget layer
- Direct users to system settings if permission was permanently denied
- Ensure permission rationale explicitly frames the feature as post-hoc dictation only
Interfaces
checkStatus() Future<PermissionStatus>
requestPermission() Future<PermissionStatus>
openSystemSettings() void
isDeniedPermanently() Future<bool>