requestPermissionWithRationale static method
Future<bool>
requestPermissionWithRationale(
- BuildContext context,
- Permission permission, {
- String title = 'Permission Required',
- String message = 'This app needs permission to function properly.',
- String positiveText = 'Grant',
- String negativeText = 'Deny',
Request permission with rationale dialog
Implementation
static Future<bool> requestPermissionWithRationale(
BuildContext context,
Permission permission, {
String title = 'Permission Required',
String message = 'This app needs permission to function properly.',
String positiveText = 'Grant',
String negativeText = 'Deny',
}) async {
// Check if permission is already granted
if (await isPermissionGranted(permission)) {
return true;
}
// Show rationale dialog
final shouldRequest = await showDialog<bool>(
context: context,
builder: (context) => AlertDialog(
title: Text(title),
content: Text(message),
actions: [
TextButton(
onPressed: () => Navigator.of(context).pop(false),
child: Text(negativeText),
),
TextButton(
onPressed: () => Navigator.of(context).pop(true),
child: Text(positiveText),
),
],
),
);
if (shouldRequest == true) {
return await permission.request().isGranted;
}
return false;
}