Merhabalar. Bugünkü yazımda sizlere Flutter uygulamamızda kullanıcıdan izin istemeyi anlatacağım.

Öncelikle bilmemiz gereken şudur ki, kullanıcıya bildirim atmak için, galerisine, dosyalarına, rehberine, kamerasına vb erişmek için kullanıcıdan izin istememiz gerekiyor.

Bunun için permission_handler paketini projemize eklememiz gerekmektedir. Projemizin pubspec.yaml dosyasına bu paketi ekliyoruz.

ANDROID KURULUM

android>app>src>main> içerisinde bulunan AndroidManifest.xml dosyasına gidiyoruz. Ben örnek amacıyla galeri erişimi isteyeceğim. Bu sebeple iki tane <uses-permission> ekleyeceğim. Sizler de kullanacağınız izinler için burayı ziyaret edebilirsiniz.

IOS KURULUM

ios>Runner içerisinde bulunan info.plist dosyasına gidiyoruz. Buradan kullanacağımız izinler için <key><string> ikililerini alıp yerleştiriyoruz.

BAŞLAYALIM

Kurulumlarımızı yaptığımıza göre uygulamamıza dönebiliriz. Bu işlemlerden sonra terminal üzerinde önce flutter clean daha sonra da flutter pub get yapınız. Mac kullanıcısıysanız bu iki işlemden sonra cd ios ile terminal üzerinden ios klasörüne geçiş yapın. Daha sonra eğer cihazınızın işlemcisi intel ise pod install değilse arch -x86_64 pod install yapınız. İşlemlerden sonra projemizi çalıştırabiliriz.

Projemizi çalıştırdık. Ekrana sadece bir buton yerleştiriyorum. İlk önce yapmak istediğim şey galeri iznimin olup olmadığını öğrenmek.

Bu kod parçası storage iznimin olup olmadığının dönüşünü yapacak. Console üzerinden görüntülediğim ifade;

  1. PermissionStatus.denied –> Bu izin kullanıcıya hiç sorulmamış.
  2. PermissionStatus.granted –> Bu izin kullanıcıya sorulmuş ve kullanıcı izni vermiş.
  3. PermissionStatus.isPermanentlyDenied –> Bu izin kullanıcıya sorulmuş ve kullanıcı izin vermemiş.

anlamlarına gelmektedir. Biz ilk defa sorduğumuz için bize PermissionStatus.denied döndürdü. Buraya kadar her şey güzel. Şimdi ihtimalleri değerlendirelim ve bir kod bloğu oluşturalım.

1) Kullanıcıya ilk kez sorduğumuz durum.
1.1) Kullanıcıya izni sorduktan sonra onay verdiği durum.
1.2) Kullanıcıya izni sorduktan sonra izin vermediği durum.
2) Kullanıcıya önceden izin sorulmuştur ve kullanıcı izni vermiştir.
3) Kullanıcıya önceden izin sorulmuştur ve kullanıcı izni vermemiştir.

Peki kullanıcıdan izni nasıl isteyeceğiz. İznin henüz sorulmadığı yerde bu izni birlikte soralım.

Burada kullanıcıdan storage iznini istiyoruz. Fakat izni verdikten sonra da bir işlem yapabiliriz. Bunu da aslında yukarıda bahsettiğim şekilde ufak bir if bloğu ile kontrol edeceğiz. Yukarıdaki fotoğrafta bulunan value ifadesi kullanıcının biz izni sorduktan sonra verdiği cevap anlamına gelir. Artık bu iç blokta işlemlerimizi yapacağız ancak burada denied kontrolünü geçiyoruz çünkü izni sorduk.

Tüm işlemler aslında bu kadar, uygulamaya geçebiliriz.

Butonumuza bastık ve İzin Hiç sorulmadı çıktısını aldık. Ekranda da artık izni sorduğumuzu görüyoruz. İzni kabul ediyorum.

Console üzerinde Kullanıcıya izin soruldu. İzni verdi yazdırdığına göre kodumuz doğru çalışıyor. Butona artık tekrar basarsam status değerinin granted olmasını beklerim.

Flutter’da izin kontrolü bu kadar. İzni verme, reddetme durumunda ne gibi işlemler yapacağınız tamamen sizin uygulamanızın işleyişiyle alakalıdır. Kaynak kodlarına buradan ulaşabilirsiniz. İyi çalışmalar dilerim.


2 yorum

Adım Adım Flutter'da Galeriden Fotoğraf Seçme Nasıl Yapılır? - Çağatay Öney · Mayıs 29, 2023 10:04 am tarihinde

[…] fotoğrafı seçmeliyiz. Kullanıcıdan nasıl izin alacağımızla alakalı yazdığım yazıya buradan […]

Flutter'da Bildirimler - Local Notification - Çağatay Öney · Kasım 23, 2023 7:27 pm tarihinde

[…] bildirim izinlerinin açık olduğunu varsayıyorum. İzin işlemleri ile alakalı yazıma buradan […]

Bir yanıt yazın

Avatar placeholder

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir