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şlenen bir cihaza bağlanma ve ses kaydetme gibi kısıtlı işlemler
Bu sayfada, izinleri kullanmak için ü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ş şekli hakkında genel bilgiler sunulmaktadır. Diğer sayfalarda, uygulamanızın izin isteklerini en aza indirme, izinleri beyan etme, çalışma zamanı izinleri isteme ve uygulamanızın bileşenleriyle diğer uygulamaların etkileşim kurma şeklini kısıtlama konuları açıklanmaktadır.
Android uygulama izinlerinin tam listesini görüntülemek 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 izin beyan etmek zorunda 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 beyan etmeye 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österilmiştir:
İ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 izin 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ı belirtir. Her bir 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 süresi izinleri, uygulamanızın kısıtlanmış verilere sınırlı erişmesine veya sistemi ya da diğer uygulamaları minimum düzeyde etkileyen kısıtlanmış işlemler gerçekleştirmesine olanak tanır. Uygulamanızda yükleme süresi izinlerini beyan ettiğinizde uygulama mağazası, Şekil 2'de gösterildiği gibi, uygulama ayrıntıları sayfasını görüntüleyen kullanıcılara bir yükleme zamanı izni bildirimi sunar. Kullanıcı uygulamanızı yüklediğinde sistem, uygulamanıza otomatik olarak izinleri verir.
Android, normal izinler ve imza izinleri de dahil olmak üzere birkaç yükleme zamanı izni 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, izni tanımlayan uygulamayla veya işletim sistemiyle aynı sertifikayla 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 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ı izinleri, uygulamanızın kısıtlanmış verilere ek erişim sağlamasına veya uygulamanızın sistemi ve diğer uygulamaları önemli ölçüde etkileyen kısıtlanmış işlemler yapmasına olanak tanır. Dolayısıyla, kısıtlanmış verilere erişmek veya kısıtlanmış işlemler gerçekleştirmek için uygulamanızda çalışma zamanı izinleri istemeniz gerekir. Bu izinlerin önceden verildiğini varsaymayın. İzinleri kontrol edin ve gerekiyorsa her erişimden önce isteyin.
Uygulamanız çalışma zamanı izni istediğinde, sistem 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. Bu nedenle sistem, uygulamanızın bu bilgilere neden eriştiğini açıklamanıza yardımcı olur.
Sistem, çalışma zamanı izinlerine dangerous
koruma düzeyini 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 genellikle diğer uygulamaların üzerinde bulunma gibi özellikle güçlü işlemlere erişimi korumak istediklerinde özel izinler tanımlarlar.
Sistem ayarlarındaki Özel uygulama erişimi sayfası, kullanıcılar tarafından açı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 izinlerden 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 gösterilen sistem iletişim kutusu 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 vermeksizin 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ı, uygulamalarla paylaştığı 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: Uygulama, yalnızca kullanıcının çağırdığı belirli bir görev veya işlem için gerekli olan verilere erişir ve bu verileri kullanır.
Bu bölümde, izinleri uygulamanızda etkili bir şekilde kullanmaya yönelik temel en iyi uygulamalar sunulmaktadır. Android'de izinlerle nasıl çalışabileceğiniz hakkında daha fazla ayrıntı 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 dayanmadan uygulamanızın kullanım alanını karşılamak için alternatif bir yol olabilir.
Çalışma zamanı izinlerini belirli işlemlerle ilişkilendirme
Uygulamanızın kullanım alanı akışında olabildiğince geç izin isteyin. Örneğin, uygulamanız kullanıcıların başkalarına sesli mesaj göndermesine izin veriyorsa kullanıcı mesajlaşma ekranına ulaşıp 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
Eklediğiniz bir kitaplığın izin gereksinimlerini de devralırsınız. Her bir bağımlılığın gerektirdiği izinleri ve bu izinlerin ne için kullanıldığını unutmayın.
Şeffaf olun
Kullanıcıların bilinçli kararlar alabilmeleri için izin isteğinde bulunurken neye erişim sağladığınızı, neden erişim sağladığınızı ve izinlerin reddedilmesi durumunda hangi işlevlerin etkileneceğini açıkça belirtin.
Sistem erişimlerini uygunsuz yap
Kamera veya mikrofon gibi hassas verilere ya da donanımlara eriştiğinizde, sistem bu göstergeleri zaten sunmuyorsa uygulamanızda bunu sürekli olarak uyarı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şlemler gerçekleştirdiğini anlamaları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şimlerin nasıl kısıtlanacağı hakkındaki sayfada açıklandığı gibi, diğer uygulamaların uygulamanızla etkileşimde bulunabileceğini kısıtlayabilir.