request
Requests a permission from the user.
This function will:
Show system permission dialog (if first time or previously denied softly)
Return immediately if already granted
Suspend until user makes a choice
Supports both built-in and custom permissions:
AppGrant enum values (recommended for common permissions)
RawPermission for custom/platform-specific permissions
Return
Status after the request (GRANTED if approved, DENIED/DENIED_ALWAYS if rejected)
Example (built-in permission):
val result = grantManager.request(AppGrant.CAMERA)
when (result) {
GrantStatus.GRANTED -> openCamera()
GrantStatus.DENIED -> showRationaleDialog()
GrantStatus.DENIED_ALWAYS -> showGoToSettingsDialog()
else -> {}
}Example (custom permission):
val customPermission = RawPermission(
identifier = "CUSTOM_FEATURE",
androidPermissions = listOf("com.company.permission.CUSTOM"),
iosUsageKey = "NSCustomUsageDescription"
)
val result = grantManager.request(customPermission)Parameters
The permission to request (AppGrant or RawPermission)
Request multiple grants from the system at once.
Platform Behavior:
Android: Shows a single system dialog flow for all requested grants. Better UX for related permissions (e.g. FINE + COARSE Location).
iOS: Requests each permission sequentially (iOS native behavior).
Return
Map of each grant to its final status
Parameters
List of grants to request