The Special Permissions plugin handles Android permissions that cannot be requested through normal runtime dialogs. These require the user to manually enable them in system settings.
Setup The special permissions plugin is already registered in the default AppTemplate.
API special.Request(perm SpecialType) (string, error) Opens the system settings screen for the given permission type.
special.Check(perm SpecialType) (bool, error) Checks whether the given special permission is currently granted.
Special Permission Types Type Settings Screen Android Version Accessibility Settings.ACTION_ACCESSIBILITY_SETTINGS All AllFilesAccess Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION 11+ BatteryExemption Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZERS 6.0+ NotificationAccess Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS All Convenience Helpers Function Description RequestAccessibility() (string, error) Opens Accessibility settings RequestAllFilesAccess() (string, error) Opens All Files Access settings (Android 11+) RequestBatteryExemption() (string, error) Opens battery optimization exemption dialog RequestNotificationAccess() (string, error) Opens notification access settings RequestAppSettings() (string, error) Opens app-specific system settings CheckAccessibility() (bool, error) Checks if Accessibility is granted CheckAllFilesAccess() (bool, error) Checks if All Files Access is granted CheckBatteryExemption() (bool, error) Checks if battery exemption is granted CheckNotificationAccess() (bool, error) Checks if notification access is granted Example import "github.com/sweet-juice/sweetjuice/plugins/special" // Request battery exemption special.RequestBatteryExemption() // Request notification access special.RequestNotificationAccess() // Check if notification access is granted granted, _ := special.CheckNotificationAccess() Android Notes These permissions cannot be requested via requestPermissions(). The user must manually enable them in the system settings screen. AllFilesAccess requires Android 11 (API 30) or higher. NotificationAccess requires a NotificationListenerService declared in the app manifest with the BIND_NOTIFICATION_LISTENER_SERVICE permission.