Skip to content
Last updated

Runtime Permissions

Android requires runtime permission prompts for location and notifications.

Step 1: Use Bubbl PermissionManager

private val permMgr by lazy { PermissionManager(this) }
private lateinit var permLauncher: ActivityResultLauncher<Array<String>>

permLauncher = permMgr.registerLauncher { granted ->
    if (granted) {
        BubblSdk.startLocationTracking(this)
    } else {
        toast("Permissions denied")
    }
}

val granted = permMgr.locationGranted() &&
    (Build.VERSION.SDK_INT < 33 || permMgr.notificationGranted())

if (granted) {
    BubblSdk.startLocationTracking(this)
} else {
    permLauncher.launch(permMgr.requiredPermissions())
}

Why

  • Bubbl cannot track location without runtime permission.
  • Android 13+ requires a separate notification permission prompt.
Tooltip

If you use your own permission system, make sure you still call: BubblSdk.startLocationTracking(this) only after permissions are granted.