Permissions
- Flutter course
- Advanced
- Lesson 38/69
- 4 min
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
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
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
final status = await location.____;
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 |