Permissions
foreground and background are separate because Android and iOS gate
background access differently. needsSettingsRedirect means the app still needs
a settings or app-resume round-trip before background tracking can start. On
Android 11+, requestBackgroundPermission() can open the app settings screen
because the platform no longer allows inline background-location prompts. On
iOS, it can also remain true until Always authorization is granted; use
openAppLocationSettings() after explaining why Always access is required.
Call checkBackgroundPermission() again from your app-resume path.
