CodeBlanks Logo Icon CodeBlanks

izinler

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

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
}

Örnek çözüm

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);
}

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

Soru
final status = await location.____;
Cevap
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

İleri seviye bölümündeki tüm dersler