CodeBlanks Logo Icon CodeBlanks

Permissions

Request location permission and handle denial.

Location permission

Before reading the location, you must ask the user for permission. You request it with the requestPermission method. If granted, it returns PermissionStatus.granted; if denied, it returns PermissionStatus.denied.

final status = await location.requestPermission();
if (status != PermissionStatus.granted) return;

Permission check

It is good practice to check the permission status before reading the location. You learn the current permission with hasPermission; if it is not granted, you request it with requestPermission. This flow avoids showing unnecessary prompts.

final has = await location.hasPermission();
if (has != PermissionStatus.granted) {
  await location.requestPermission();
}

Practice Request permission and check it

Create a Location instance, request permission with requestPermission and print whether the returned value is granted.

Starter code

main.dart
enum PermissionStatus { granted, denied }

class Location {
  Future<PermissionStatus> requestPermission() async => PermissionStatus.granted;
}

void main() async {
  // izin iste
  // granted olup olmadığını yazdır
}

Sample solution

main.dart
enum PermissionStatus { granted, denied }

class Location {
  Future<PermissionStatus> requestPermission() async => PermissionStatus.granted;
}

void main() async {
  final location = Location();
  final status = await location.requestPermission();
  print(status == PermissionStatus.granted);
}

Expected output

true

Questions and answers

Review the lesson questions together with their answers. To test yourself, solve the lesson interactively.

1 What does requestPermission return if the user denies location permission?

  • PermissionStatus.granted
  • PermissionStatus.denied Correct answer
  • null
  • It throws an error

Explanation: If permission is denied, requestPermission returns PermissionStatus.denied; it does not throw or return null.

2 Request permission

Question
final status = await location.____;
Answer
final status = await location.requestPermission();

Explanation: To request location permission you call the requestPermission method with parentheses and await it.

3 Permission parts

Term Meaning
requestPermission Requests permission
PermissionStatus.granted Permission granted
PermissionStatus.denied Permission denied
hasPermission Checks current permission

All lessons in Advanced