izinler
- Flutter kursu
- İleri seviye
- Ders 38/69
- 4 dk
Konum izni istemeyi ve reddedilince nasıl davranacağını öğrenirsin.
Konum izni
Konum almadan önce kullanıcıdan izin istenmesi gerekir. requestPermission metodu ile izin talep edilir. Kullanıcı izin verirse PermissionStatus.granted, vermezse PermissionStatus.denied döner.
final status = await location.requestPermission();
if (status != PermissionStatus.granted) return;İzin kontrolü
Konum almadan önce izin durumunu kontrol etmek iyi bir uygulamadır. hasPermission ile mevcut izin öğrenilir; eğer verilmemişse requestPermission ile istenir. Bu akış, kullanıcıya gereksiz istem göstermekten kaçınır.
final has = await location.hasPermission();
if (has != PermissionStatus.granted) {
await location.requestPermission();
}Uygulama İzin iste ve kontrol et
Bir Location örneği oluştur, requestPermission ile izin iste ve dönen değerin granted olup olmadığını yazdır.
Başlangıç kodu
enum PermissionStatus { granted, denied }
class Location {
Future<PermissionStatus> requestPermission() async => PermissionStatus.granted;
}
void main() async {
// izin iste
// granted olup olmadığını yazdır
}Örnek çözüm
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);
}Beklenen çıktı
true
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Kullanıcı konum iznini reddederse requestPermission ne döndürür?
- PermissionStatus.granted
- PermissionStatus.denied Doğru cevap
- null
- Bir hata fırlatır
Açıklama: İzin reddedilirse requestPermission PermissionStatus.denied döndürür; hata fırlatmaz veya null vermez.
2 İzin iste
final status = await location.____;
final status = await location.requestPermission();
Açıklama: Konum izni istemek için requestPermission metodu parantezlerle çağrılır ve await ile beklenir.
3 İzin parçaları
| Kavram | Anlamı |
|---|---|
requestPermission |
İzin ister |
PermissionStatus.granted |
İzin verildi |
PermissionStatus.denied |
İzin reddedildi |
hasPermission |
Mevcut izni kontrol eder |