Uygulama izinleri, aşağıdakilere erişimi koruyarak kullanıcı gizliliğini destekler:
- Sistem durumu ve kullanıcıların iletişim bilgileri gibi kısıtlanmış veriler
- Eşlenen bir cihaza bağlanma ve ses kaydetme gibi kısıtlanmış işlemler
Bu sayfada, izinleri kullanmaya yönelik üst düzey bir iş akışı, farklı izin türlerinin açıklamaları ve uygulamanızda izinleri kullanmayla ilgili bazı en iyi uygulamalar da dahil olmak üzere Android izinlerinin işleyiş şekline dair genel bir bakış sunulmaktadır. Diğer sayfalarda, uygulamanızın izin isteklerini en aza indirme, izinleri beyan etme, çalışma zamanında istenen izinleri isteme ve diğer uygulamaların uygulamanızın bileşenleriyle nasıl etkileşim kurabileceğini kısıtlama işlemleri açıklanmaktadır.
Android uygulama izinlerinin tam listesini görüntülemek için izinler API referans sayfasını ziyaret edin.
İzin iş akışını gösteren bazı örnek uygulamaları görüntülemek için GitHub'daki Android izin örnekleri deposunu ziyaret edin.
İzinleri kullanma iş akışı
Uygulamanız kısıtlanmış verilere veya kısıtlanmış işlemlere erişim gerektirebilecek işlevler sunuyorsa bilgileri alıp alamayacağınızı veya işlemleri izinleri beyan etmeniz gerekmeden gerçekleştirip gerçekleştiremeyeceğinizi belirleyin. Uygulamanızda fotoğraf çekme, medya oynatmayı duraklatma ve alakalı reklamlar gösterme gibi birçok kullanım alanını herhangi bir izin beyan etmeden gerçekleştirebilirsiniz.
Uygulamanızın bir kullanım alanını yerine getirmek için kısıtlanmış verilere erişmesi veya kısıtlanmış işlemler gerçekleştirmesi gerektiğine karar verirseniz uygun izinleri beyan edin. Yükleme zamanı izinleri olarak bilinen bazı izinler, uygulamanız yüklendiğinde otomatik olarak verilir. Çalışma zamanında istenen izinler olarak bilinen diğer izinler için uygulamanızın bir adım daha ileri giderek izni çalışma zamanında istemesi gerekir.
Şekil 1'de uygulama izinlerini kullanma iş akışı gösterilmektedir:
İzin türleri
Android, izinleri yükleme zamanı izinleri, çalışma zamanında istenen izinler ve özel izinler gibi farklı türlere ayırır. Her iznin türü, sistem uygulamanıza bu izni verdiğinde uygulamanızın erişebileceği kısıtlanmış verilerin kapsamını ve uygulamanızın gerçekleştirebileceği kısıtlanmış işlemlerin kapsamını gösterir. Her iznin koruma düzeyi, türüne bağlıdır ve izinler API referansı sayfasında gösterilir.
Yükleme zamanı izinleri
Yükleme zamanı izinleri, uygulamanıza kısıtlanmış verilere sınırlı erişim sağlar veya uygulamanızın sistemi ya da diğer uygulamaları minimum düzeyde etkileyen kısıtlanmış işlemleri gerçekleştirmesine olanak tanır. Uygulamanızda yükleme zamanı izinlerini beyan ettiğinizde uygulama mağazası, uygulamanın ayrıntılar sayfasını görüntüleyen kullanıcıya Şekil 2'de gösterildiği gibi bir yükleme zamanı izin bildirimi gösterir. Kullanıcı uygulamanızı yüklediğinde sistem, uygulamanıza izinleri otomatik olarak verir.
Android, normal izinler ve imza izinleri de dahil olmak üzere yükleme zamanı izinlerinin çeşitli alt türlerini içerir.
Normal izinler
Bu izinler, uygulamanızın korumalı alanının ötesine geçen ancak kullanıcının gizliliği ve diğer uygulamaların çalışması açısından çok az risk oluşturan verilere ve işlemlere erişim sağlar.
Sistem, normal izinlere normal koruma düzeyini atar.
İmza izinleri
Sistem, bir uygulamaya imza izni verirken uygulamanın, izni tanımlayan uygulama veya işletim sistemiyle aynı sertifika tarafından imzalanmış olmasını şart koşar.
Otomatik doldurma veya VPN hizmetleri gibi ayrıcalıklı hizmetleri uygulayan uygulamalar da imza izinlerini kullanır. Bu uygulamalar, hizmetlere yalnızca sistemin bağlanabilmesi için hizmet bağlama imza izinleri gerektirir.
Sistem, imza izinlerine signature koruma düzeyini atar.
Çalışma zamanı izinleri
Tehlikeli izinler olarak da bilinen çalışma zamanında istenen izinler, uygulamanıza kısıtlanmış verilere ek erişim sağlar veya uygulamanızın sistemi ve diğer uygulamaları daha önemli ölçüde etkileyen kısıtlanmış işlemleri gerçekleştirmesine olanak tanır. Bu nedenle, kısıtlanmış verilere erişebilmek veya kısıtlanmış işlemleri gerçekleştirebilmek için uygulamanızda çalışma zamanında istenen izinleri istemeniz gerekir. Bu izinlerin daha önce verildiğini varsaymayın. İzinleri kontrol edin ve gerekirse her erişimden önce isteyin.
Uygulamanız çalışma zamanında istenen izin istediğinde sistem, Şekil 3'te gösterildiği gibi çalışma zamanında istenen izin istemi gösterir.
Çalışma zamanında istenen izinlerin çoğu, potansiyel olarak hassas bilgiler içeren özel bir kısıtlanmış veri türü olan özel kullanıcı verilerine erişir. Özel kullanıcı verilerine örnek olarak konum ve iletişim bilgileri verilebilir.
Mikrofon ve kamera, özellikle hassas bilgilere erişim sağlar. Bu nedenle sistem, uygulamanızın bu bilgilere neden eriştiğini açıklamanıza yardımcı olur.
Sistem, çalışma zamanında istenen izinlere dangerous koruma düzeyini atar.
Özel izinler
Özel izinler, belirli uygulama işlemlerine karşılık gelir. Özel izinleri yalnızca platform ve OEM'ler tanımlayabilir. Ayrıca platform ve OEM'ler, diğer uygulamaların üzerinde çizim yapma gibi özellikle güçlü işlemlere erişimi korumak istediklerinde genellikle özel izinler tanımlar.
Sistem ayarlarındaki Özel uygulama erişimi sayfasında, kullanıcı tarafından açılıp kapatılabilen bir dizi işlem bulunur. Bu işlemlerin çoğu özel izinler olarak uygulanır.
Özel izin isteme hakkında daha fazla bilgi edinin.
Sistem, özel izinlere appop koruma düzeyini atar.
İzin grupları
İzinler, izin gruplarına ait olabilir. İzin grupları, mantıksal olarak ilişkili bir dizi izinden oluşur. Örneğin, SMS mesajı gönderme ve alma izinleri, uygulamanın SMS ile etkileşimiyle ilgili olduğundan aynı gruba ait olabilir.
İzin grupları, bir uygulama yakından alakalı izinler istediğinde kullanıcıya gösterilen sistem iletişim kutularının sayısını en aza indirmeye yardımcı olur. Kullanıcıya bir uygulama için izin verme istemi gösterildiğinde aynı gruba ait izinler aynı arayüzde gösterilir. Ancak izinler, önceden haber verilmeksizin grupları değiştirebilir. Bu nedenle, belirli bir iznin başka bir izinle gruplandırıldığını varsaymayın.
En iyi uygulamalar
Uygulama izinleri, sistem güvenlik özelliklerini temel alır ve Android'in kullanıcı gizliliğiyle ilgili aşağıdaki hedefleri desteklemesine yardımcı olur:
- Kontrol: Kullanıcı, uygulamalarla paylaştığı veriler üzerinde kontrole sahiptir.
- Şeffaflık: Kullanıcı, uygulamanın hangi verileri kullandığını ve bu verilere neden eriştiğini anlar.
- Minimum veri toplama: Uygulama, yalnızca kullanıcının başlattığı belirli bir görev veya işlem için gereken verilere erişir ve bunları kullanır.
Bu bölümde, uygulamanızda izinleri etkili bir şekilde kullanmayla ilgili temel en iyi uygulamalar sunulmaktadır. Android'de izinlerle nasıl çalışabileceğiniz hakkında daha fazla bilgi için uygulama izinleriyle ilgili en iyi uygulamalar sayfasını ziyaret edin.
Minimum sayıda izin isteyin
Kullanıcı uygulamanızda belirli bir işlem istediğinde uygulamanız yalnızca bu işlemi tamamlamak için gereken izinleri istemelidir. İzinleri nasıl kullandığınıza bağlı olarak, hassas bilgilere erişim gerektirmeden uygulamanızın kullanım alanını karşılamanın alternatif bir yolu olabilir.
Çalışma zamanında istenen izinleri belirli işlemlerle ilişkilendirme
İzinleri, uygulamanızın kullanım alanlarının akışında mümkün olduğunca geç isteyin. Örneğin, uygulamanız kullanıcıların başkalarına sesli mesaj göndermesine olanak tanıyorsa kullanıcı mesajlaşma ekranına gidip Sesli mesaj gönder düğmesine basana kadar bekleyin. Kullanıcı düğmeye bastıktan sonra uygulamanız mikrofona erişim isteğinde bulunabilir.
Uygulamanızın bağımlılıklarını göz önünde bulundurun
Bir kitaplığı dahil ettiğinizde, izin şartlarını da devralırsınız. Her bağımlılığın gerektirdiği izinleri ve bu izinlerin ne için kullanıldığını bilin.
Şeffaf olun
İzin isteğinde bulunurken nelere, neden eriştiğinizi ve izinler reddedilirse hangi işlevlerin etkileneceğini açıkça belirtin. Böylece kullanıcılar bilinçli kararlar verebilir.
Sistem erişimlerini açıkça belirtme
Kamera veya mikrofon gibi hassas verilere ya da donanımlara eriştiğinizde, sistem bu göstergeleri sağlamıyorsa uygulamanızda sürekli bir gösterge sağlayın. Bu hatırlatıcı, kullanıcıların uygulamanızın kısıtlanmış verilere tam olarak ne zaman eriştiğini veya kısıtlanmış işlemleri ne zaman gerçekleştirdiğini anlamasına yardımcı olur.
Sistem bileşenlerindeki izinler
İzinler yalnızca sistem işlevlerini istemek için kullanılmaz. Uygulamanızın sistem bileşenleri, diğer uygulamalarla etkileşimleri kısıtlama hakkındaki sayfada açıklandığı gibi, uygulamanızla etkileşim kurabilecek diğer uygulamaları kısıtlayabilir.