- Katılım
- 21 May 2023
- Mesajlar
- 556
- Tepki
- 17
- Puan
- 18
Bir kullanıcı konum iznini reddettiğinde uygulamanız ne gösteriyor: boş bir harita mı, yoksa neden boş kaldığını açıklayan bir ekran mı? Aradaki fark, kullanıcının uygulamayı silip silmeyeceğini belirleyebilecek kadar önemli.
Bu yazı, kamera ve konum gibi çalışma zamanı izinleri reddedildiğinde uygulamanın hangi ilkelere göre davranması gerektiğini gösteriyor.
İki farklı ret var: geçici ve kalıcı
Android Developers'ın resmî çalışma zamanı izinleri belgesine göre kullanıcı bir izin talebini iki kez reddedip "Reddet" seçeneğine bastığında sistem artık izin iletişim kutusunu tekrar göstermiyor; bu durum "bir daha sorma" (don't ask again) olarak biliniyor ve kalıcı ret sayılıyor.
Bu ayrım önemli çünkü uygulamanın vereceği tepki de buna göre değişmeli: geçici bir rette tekrar izin isteyebilirsiniz, ama kalıcı rette artık sistem iletişim kutusu gösteremezsiniz; kullanıcıyı ayarlara yönlendirmek dışında bir seçeneğiniz kalmıyor.
Uygulamanın hangi durumda olduğunu doğru ayırt etmesi de ayrıca dikkat gerektiriyor: kullanıcının daha önce hiç sorulmadığı bir durum, bir kez reddettiği bir durum ve kalıcı olarak reddettiği bir durum, arayüzde farklı mesajları hak ediyor. Bu üçünü karıştırmak, örneğin ilk kez soru sorulan bir kullanıcıya sanki kalıcı reddetmiş gibi doğrudan ayarlara yönlendiren bir mesaj göstermek, gereksiz bir sürtünme yaratır.
Reddedilince uygulama ne yapmalı
Belgede sıralanan temel ilkeler şöyle: işlevselliği en aza indirmek, kullanıcıyı rehber olarak yönlendirmek, belirli mesajlar göstermek, kullanıcı arayüzünü bloke etmemek ve kullanıcının tercihine saygı göstermek. Pratikte bu, harita ekranının boş kalması yerine "konum izni verilmediği için yakınınızdaki yerler gösterilemiyor, ayarlardan izin verebilirsiniz" gibi açıklayıcı bir durum göstermesi anlamına geliyor.
- İşlevselliği daraltın: Tüm uygulamayı kilitlemek yerine, yalnızca o izne bağlı özelliği devre dışı bırakın.
- Nedenini açıklayın: Kullanıcı özelliği neden kullanamadığını anlamalı, tahmin etmek zorunda kalmamalı.
- Alternatif sunun: Konum izni yoksa elle şehir/adres girişi gibi bir yedek yol tanımlayın.
- Israrcı olmayın: Her ekran açılışında yeniden izin istemek, kullanıcıyı rahatsız eder ve genelde işe yaramaz.
Belge bunun tersini de açıkça uyarıyor: tekrarlayan bildirimlerle kullanıcıyı rahatsız etmemek, tüm ekranı bloke eden bir uyarı göstermemek ve sistem ayarlarına yönlendirmeyi zorlamamak gerekiyor. Bu davranışlardan biri, kullanıcının uygulamanızı düşük puanla değerlendirmesine veya kaldırmasına yol açabilecek türden bir kullanıcı deneyimi hatası.
Kalıcı rette geriye kalan tek yol
Kullanıcı kalıcı olarak reddettiyse, uygulamanın yapabileceği tek şey kullanıcıyı sistem ayarlarındaki uygulama izinleri ekranına yönlendirmek; sistemin kendisi artık bir izin iletişim kutusu göstermeyeceği için bu adım atlanamaz. Bu yönlendirmeyi yalnızca kullanıcı ilgili özelliği kullanmaya çalıştığında, bağlamla birlikte sunmak, rastgele bir zamanda göstermekten daha az rahatsız edici.
Bir uygulama bu tür bir izin reddi sonrası beklenmedik şekilde çöküyorsa, bu ayrı ve daha ciddi bir teşhis konusu; Android uygulama çökmesi: crash kaydındaki ilk ipucu yazımız çökme kaydında önce nereye bakmanız gerektiğini gösteriyor. İzin reddedildiğinde çökme, genelde kodun izin verilmediği ihtimalini hiç kontrol etmeden ilgili API'yi çağırmaya çalışmasından kaynaklanır.
Play Console tarafındaki beklenti
Google Play Console'un hassas izinler belgesine göre "tehlikeli" sınıfındaki izinler (örneğin READ_CALENDAR gibi) çalışma zamanı isteğiyle ve açık bir gerekçeyle talep edilmeli. Belge, kullanıcı bir kısıtlı izni reddettiğinde bu kararlara saygı gösterilmesi gerektiğini ve uygulamanın "izni reddeden kullanıcıları makul bir çabayla desteklemesi" gerektiğini belirtiyor; örnek olarak manuel veri girişi gibi alternatif bir yol sunmayı gösteriyor.
Bu, geliştirici belgesindeki tavsiyenin mağaza politikasında da karşılığı olduğu anlamına geliyor: izin reddi sonrası kullanıcıyı işlevsiz bırakmak yalnızca kötü bir deneyim değil, aynı zamanda mağaza incelemesinde de sorgulanabilecek bir davranış.
Kademeli izin isteme (incremental request) fikri de aynı belgede geçiyor: tüm izinleri uygulama ilk açıldığında art arda sormak yerine, her izni gerçekten ihtiyaç duyulduğu anda istemek öneriliyor. Bir konum izni, kullanıcı haritayı ilk açtığında; bir kamera izni, kullanıcı ilk fotoğraf çekmeye çalıştığında sorulursa, kullanıcı neden sorulduğunu bağlamdan zaten anlar; bu da yukarıdaki ilkelerden biri olan "kullanıcıyı rehber olarak yönlendirme" fikrinin doğal bir uzantısı.
Uygulamanızın mağazadaki görünürlüğünü ve kullanıcı güvenini etkileyen bu tür ayrıntılar, genel optimizasyon stratejinizin de bir parçası; uygulama mağazası başarısı: indirilmelerinizi katlayacak optimizasyon stratejileri yazımız bu bütünü daha geniş bir çerçevede ele alıyor. Mobil geliştirmeye yeni başlıyorsanız mobil uygulama geliştirme nedir yazımız da temel kavramları baştan anlatıyor.
Püf nokta' Alıntı:İzin reddini bir hata değil, bir kullanıcı kararı olarak ele alın; uygulamanız o kararla birlikte çalışabilmeli.
Özetle
Kamera veya konum izni reddedildiğinde uygulamanın görevi işlevselliği daraltmak, nedenini açıkça göstermek ve ısrarcı olmadan bir alternatif sunmak; kalıcı rette ise tek çıkış yolu kullanıcıyı ayarlara yönlendirmek. Bu ilkeler hem Android'in kendi geliştirici belgesinde hem Play Console'un hassas izinler politikasında aynı yönde birleşiyor.
Sizin uygulamanız bir izin reddedildiğinde şu anda ne gösteriyor?
Güncelleme: 24 Ağustos 2026.
Dijital Dünyanıza Yön Veren Pusula