Uygulama izinleri, aşağıdakilere erişimi koruyarak kullanıcı gizliliğinin desteklenmesine yardımcı olur:
- Sistem durumu ve kullanıcıların iletişim bilgileri gibi kısıtlanmış veriler
- Eşlenmiş bir cihaza bağlanma ve ses kaydetme gibi kısıtlanmış işlemler
Bu sayfada, izinleri kullanmayla ilgili üst düzey iş akışı, farklı izin türlerinin açıklamaları ve uygulamanızda izinleri kullanmayla ilgili bazı en iyi uygulamalar dahil olmak üzere Android izinlerinin işleyişiyle ilgili genel bir bakış sunulmaktadır. Diğer sayfalarda, uygulamanızın izin isteklerini en aza indirme, izinleri beyan etme, çalışma zamanı izinleri isteme ve diğer uygulamaların uygulamanızın bileşenleriyle etkileşimde bulunma şeklini kısıtlama hakkında bilgi verilmektedir.
Android uygulama izinlerinin tam listesini görmek için permissions API referans sayfasını ziyaret edin.
İzin iş akışını gösteren bazı örnek uygulamaları görüntülemek için GitHub'da 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 izinleri bildirmenize gerek kalmadan bilgileri alıp alamayacağınızı veya işlemleri gerçekleştirip gerçekleştiremeyeceğinizi belirleyin. Uygulamanızda fotoğraf çekme, medya oynatmayı duraklatma ve alakalı reklamlar görüntüleme gibi birçok kullanım alanını herhangi bir izin bildirmenize gerek kalmadan yerine getirebilirsiniz.
Uygulamanızın bir kullanım alanını karşılamak 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ı izinleri olarak bilinen diğer izinler, uygulamanızın bir adım daha ileri gitmesini ve çalışma zamanında izin istemesini gerektirir.
Şekil 1'de uygulama izinlerini kullanma iş akışı gösterilmektedir:
İzin türleri
Android; izinleri, yükleme zamanı izinleri, çalışma zamanı izinleri ve özel izinler dahil olmak üzere farklı kategorilere ayırır. Her bir izin 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 permissions API referansı sayfasında gösterilir.
Yükleme zamanı izinleri
Yükleme zamanı izinleri, uygulamanızın kısıtlanmış verilere sınırlı olarak erişmesini veya sistemi ya da diğer uygulamaları minimum düzeyde etkileyen kısıtlanmış işlemler gerçekleştirmesini sağlar. Uygulamanızda yükleme zamanı izinlerini beyan ettiğinizde uygulama mağazası, uygulama ayrıntıları sayfasını görüntüleyen kullanıcıya bir yükleme zamanı izni bildirimi sunar (Şekil 2'de gösterildiği gibi). Kullanıcı uygulamanızı yüklediğinde sistem, uygulamanıza izinleri otomatik olarak verir.
Android, normal izinler ve imza izinleri dahil olmak üzere yükleme sırasındaki izinlerin birkaç alt türünü içerir.
Normal izinler
Bu izinler, uygulamanızın korumalı alanının ötesine geçen veri ve işlemlere erişim sağlar, ancak kullanıcının gizliliği ve diğer uygulamaların çalışması için çok az risk oluşturur.
Sistem, normal
koruma düzeyini normal izinlere atar.
İmza izinleri
Sistem, yalnızca uygulama uygulama ile aynı sertifikayla veya izni tanımlayan işletim sistemiyle imzalandığında uygulamaya imza izni verir.
Otomatik doldurma veya VPN hizmetleri gibi ayrıcalıklı hizmetler uygulayan uygulamalar da imza izinlerinden yararlanır. Hizmetlere yalnızca sistemin bağlanabilmesi için bu uygulamaların hizmet bağlama imzası izinleri gerekir.
Sistem, signature
koruma düzeyini imza izinlerine atar.
Çalışma zamanı izinleri
Tehlikeli izinler olarak da bilinen çalışma zamanı izinleri, uygulamanızın kısıtlanmış verilere ek erişim elde etmesini sağlar veya uygulamanızın sistemi ve diğer uygulamaları daha önemli ölçüde etkileyen kısıtlanmış işlemler yapmasına izin verir. Bu nedenle, kısıtlanmış verilere erişebilmek veya kısıtlanmış işlemleri gerçekleştirebilmek için uygulamanızda çalışma zamanı izinleri istemeniz gerekir. Bu izinlerin önceden verildiğini varsaymayın. Bunları kontrol edin ve gerekirse her erişimden önce isteyin.
Uygulamanız çalışma zamanı izni istediğinde sistem, Şekil 3'te gösterildiği gibi bir çalışma zamanı izni istemi sunar.
Birçok çalışma zamanı izni, hassas olabilecek bilgiler içeren özel bir kısıtlanmış veri türü olan gizli kullanıcı verilerine erişir. Gizli kullanıcı verilerine örnek olarak konum ve iletişim bilgileri verilebilir.
Mikrofon ve kamera özellikle hassas bilgilere erişim sağlar. Dolayısıyla sistem, uygulamanızın bu bilgilere neden eriştiğini açıklamanıza yardımcı olur.
Sistem, dangerous
koruma düzeyini çalışma zamanı izinlerine atar.
Özel izinler
Özel izinler, belirli uygulama işlemlerine karşılık gelir. Yalnızca platform ve OEM'ler özel izinler tanımlayabilir. Buna ek olarak, platform ve OEM'ler, diğer uygulamaların üzerinde görüntüleme gibi özellikle güçlü işlemlere erişimi korumak istediklerinde genellikle özel izinler tanımlar.
Sistem ayarlarındaki Özel uygulama erişimi sayfası, kullanıcılar tarafından açılıp kapatılabilen bir dizi işlem içerir. Bu işlemlerin çoğu özel izinler olarak uygulanır.
Özel izinler isteme hakkında daha fazla bilgi edinin.
Sistem, appop
koruma düzeyini özel izinlere atar.
İzin grupları
İzinler, izin gruplarına ait olabilir. İzin grupları, mantıksal olarak birbiriyle ilişkili bir dizi izinden oluşur. Örneğin, SMS mesajı gönderme ve alma izinleri aynı gruba ait olabilir çünkü her iki izin de uygulamanın SMS ile etkileşimiyle ilgilidir.
İzin grupları, bir uygulama yakından ilgili izinler istediğinde sistemin kullanıcıya sunulan sistem iletişim kutularının sayısını en aza indirmesine yardımcı olur. Kullanıcıya bir uygulama için izin vermesi istendiğinde, aynı gruba ait izinler aynı arayüzde sunulur. Ancak izinler, grupları önceden haber verilmeden değiştirebilir. Bu nedenle, belirli bir iznin başka bir izinle birlikte 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ılar uygulamalarla paylaştıkları veriler üzerinde kontrol sahibidir.
- Şeffaflık: Kullanıcı, uygulamanın hangi verileri kullandığını ve uygulamanın bu verilere neden eriştiğini anlar.
- Minimum veri toplama: Bir uygulama, yalnızca kullanıcının çağırdığı belirli bir görev veya işlem için gerekli verilere erişir ve bu verileri kullanır.
Bu bölümde, izinleri uygulamanızda etkili şekilde kullanmayla ilgili temel en iyi uygulamalar sunulmuştur. 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şime güvenmeden uygulamanızın kullanım alanını yerine getirmenin alternatif bir yolu olabilir.
Çalışma zamanı izinlerini belirli işlemlerle ilişkilendirme
İzinleri, uygulamanızın kullanım alanı akışına kadar geçildiğinde isteyin. Örneğin, uygulamanız kullanıcıların başkalarına sesli mesaj göndermesine izin veriyorsa kullanıcı mesajlaşma ekranına gidene ve 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ık eklediğinizde izin gereksinimlerini de devralırsınız. Her bir bağımlılığın gerektirdiği izinlerin ve bu izinlerin ne için kullanıldığının farkında olun.
Şeffaf olun
Bir izin isteğinde bulunurken kullanıcıların bilinçli kararlar alabilmesi için neye eriştiğinizi, bunun nedenini ve izinlerin reddedilmesi durumunda hangi işlevlerin etkileneceğini açıkça belirtin.
Sistem erişimlerini uygunsuz yap
Kamera veya mikrofon gibi hassas verilere veya donanımlara eriştiğinizde, sistem bu göstergeleri sağlamıyorsa uygulamanızda sürekli olarak gösterilen göstergeler sağlayın. Bu hatırlatıcı, uygulamanızın kısıtlanmış verilere tam olarak ne zaman eriştiğini veya kısıtlanmış işlemler gerçekleştirdiğini kullanıcıların anlamasına yardımcı olur.
Sistem bileşenlerindeki izinler
İzinler yalnızca sistem işlevleri istemek için değildir. Uygulamanızın sistem bileşenleri, diğer uygulamalarla etkileşimleri nasıl kısıtlayacağınız hakkında sayfada açıklandığı gibi, diğer uygulamaların uygulamanızla etkileşimde bulunabilmesini kısıtlayabilir.