Best practice for requesting full-screen intent + battery optimization exemption without excessive first-run friction (React Native/Expo)
I'm building a reminder/alarm app in React Native with Expo. To ensure reminders fire reliably on Android 14+, I currently need users to manually grant:
- Notifications
- Alarms & reminders (SCHEDULE_EXACT_ALARM)
- Full-screen intents (USE_FULL_SCREEN_INTENT)
- Battery optimization exemption
- Display over other apps
This results in a multi-step manual settings walkthrough on first run, which is more friction than most alarm apps seem to require.
Is there a way to reduce the number of manual steps, or a recommended sequence/UX pattern that minimizes friction while still ensuring reliable delivery? Particularly interested in any Expo-specific approaches, since some of this sits outside Expo's default notification APIs.