Android'deki izinler

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ıtlı işlemler

Bu sayfada, izinleri kullanmaya yönelik üst düzey iş akışı, farklı izin türlerinin açıklamaları ve uygulamanızda izin kullanımıyla ilgili bazı en iyi uygulamalar da dahil olmak üzere Android izinlerinin işleyişine genel bir bakış sunulmaktadır. Diğer sayfalarda, uygulamanızın izin isteklerinin nasıl en aza indirileceği, izinlerin nasıl bildirileceği, çalışma zamanında izinlerin nasıl istenecek ve diğer uygulamaların, uygulamanızın bileşenleriyle etkileşim kurma şeklinin nasıl kısıtlanacağı 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, bilgileri alıp alamayacağınızı veya işlemleri izin beyan etmenize gerek kalmadan yapıp yapamayacağınızı belirleyin. Uygulamanızda, herhangi bir izin beyan etmenize gerek kalmadan fotoğraf çekme, medya oynatmayı duraklatma ve alakalı reklamları gösterme gibi birçok kullanım alanından yararlanabilirsiniz.

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ı 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:

Şekil 1. Android'de izinleri kullanmak için üst düzey iş akışı.

İzin türleri

Android, izinleri yükleme zamanı izinleri, çalışma zamanı izinleri ve özel izinler gibi farklı türlerde kategorilere ayırır. Her iznin türü, uygulamanızın erişebileceği kısıtlanmış verilerin kapsamını ve sistem uygulamanıza izin verdiğinde uygulamanızın gerçekleştirebileceği kısıtlanmış işlemlerin kapsamını gösterir. Her iznin koruma düzeyi, izin türüne göre belirlenir ve permissions API referansı sayfasında gösterilir.

Yükleme zamanı izinleri

Soldaki resimde, bir uygulamanın yükleme zamanı izinlerinin listesi gösterilmektedir. Sağdaki resimde, izin verme ve reddetme olmak üzere 2 seçenek içeren bir pop-up iletişim kutusu gösterilmektedir.
Şekil 2. Bir uygulamanın yükleme süresi izinlerinin, uygulama mağazasında görünen listesi.

Yükleme zamanı izinleri, uygulamanızın kısıtlanmış verilere sınırlı bir şekilde erişmesine veya sistemi ya da diğer uygulamaları minimum düzeyde etkileyen kısıtlanmış işlemler yapmasına olanak tanır. Uygulamanızda yükleme süresi izinlerini bildirdiğinizde, uygulama mağazası, kullanıcı bir uygulamanın ayrıntılar sayfasını görüntülediğinde kullanıcıya yükleme sırasında izin bildirimi gönderir. Şekil 2'de gösterildiği gibidir. Kullanıcı uygulamanızı yüklediğinde sistem uygulamanıza otomatik olarak izinleri verir.

Android, normal izinler ve imza izinleri de dahil olmak üzere yükleme sırasında izinlerin çeşitli alt türlerini içerir.

Normal izinler

Bu izinler, uygulamanızın korumalı alanının ötesine geçen verilere ve işlemlere erişim sağlar, ancak kullanıcının gizliliği ve diğer uygulamaların çalışması açısından çok az risk oluşturur.

Sistem, normal koruma düzeyini normal izinlere atar.

İmza izinleri

Sistem, bir uygulamaya yalnızca uygulama, izni tanımlayan uygulama veya işletim sistemi ile aynı sertifika ile imzalandığında imza izni verir.

Otomatik doldurma veya VPN hizmetleri gibi ayrıcalıklı hizmetleri uygulayan uygulamalar da imza izinlerinden yararlanı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

2 seçenek içeren bir pop-up iletişim kutusu: izin ver ve reddet.
Şekil 3. Uygulamanız çalışma zamanında istenen izin istediğinde görünen sistem izni istemi.

Tehlikeli izinler olarak da bilinen çalışma zamanı izinleri, uygulamanızın kısıtlanmış verilere daha fazla erişmesini sağlar veya uygulamanızın sistemi ve diğer uygulamaları önemli ölçüde etkileyen kısıtlanmış işlemler gerçekleştirmesine izin verir. Bu nedenle, kısıtlanmış verilere erişebilmek veya kısıtlanmış işlemler gerçekleştirebilmek için öncelikle uygulamanızda çalışma zamanı izinleri istemeniz gerekir. Bu izinlerin daha önce verilmiş olduğunu varsaymayın. İzinleri 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 görüntüler.

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. Ö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 geçiş yapma 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ı tarafından açılabilen bir dizi işlem içerir. Bu işlemlerin çoğu özel izinler olarak uygulanır.

Özel izin 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 ilişkili bir dizi izinden oluşur. Örneğin, SMS mesajı gönderme ve alma izinleri aynı gruba ait olabilir çünkü her ikisi de uygulamanın SMS ile etkileşimiyle ilgilidir.

İzin grupları, bir uygulama yakından alakalı izinler istediğinde sistemin kullanıcıya gösterilen sistem iletişim kutularının sayısını en aza indirmesine yardımcı olur. Kullanıcıya bir uygulama için izin vermesi istemi verildiğinde, aynı gruba ait izinler aynı arayüzde sunulur. Ancak, izinler önceden haber verilmeden gruplar değiştirilebilir. 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ı, bir 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 bunları kullanır.

Bu bölümde, izinleri uygulamanızda etkili bir şekilde kullanmaya yönelik bir dizi temel en iyi uygulama sunulmaktadır. Android'de izinlerle nasıl çalışabileceğiniz hakkında daha fazla ayrıntı için uygulama izinleri en iyi uygulamaları sayfasını ziyaret edin.

Minimum sayıda izin isteyin

Kullanıcı, uygulamanızda belirli bir işlem isteğinde bulunduğunda, 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 bağlı kalmadan uygulamanızın kullanım alanını yerine getirmenin alternatif bir yolu olabilir.

Çalışma zamanı izinlerini belirli işlemlerle ilişkilendirme

Uygulamanızın kullanım alanı akışına mümkün olduğunca geç saatlerde izin isteyin. Örneğin, uygulamanız kullanıcıların başkalarına sesli mesaj göndermesine izin veriyorsa 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ığı dahil ettiğinizde, kitaplığın izin gereksinimlerini de devralırsınız. Her bir bağımlılığın gerektirdiği izinler ve bu izinlerin ne için kullanıldığı konusunda bilgi sahibi olun.

Şeffaf olun

Kullanıcıların bilinçli kararlar alabilmeleri için izin isteğinde bulunurken neye eriştiğinizi, neden eriştiğiniz ve izinler reddedildiğinde hangi işlevlerin etkileneceği konusunda net olun.

Sistem erişimlerini uygunsuz hale getir

Hassas verilere veya kamera ya da mikrofon gibi donanımlara eriştiğinizde, sistem bu göstergeleri zaten sağlamıyorsa uygulamanızda sürekli bir gösterge sağlayın. Bu hatırlatıcı, kullanıcıların uygulamanızın tam olarak ne zaman kısıtlanmış verilere 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şlevselliği isteğinde bulunmak için değildir. Diğer uygulamalarla etkileşimlerin nasıl kısıtlanacağı ile ilgili sayfada açıklandığı gibi, uygulamanızın sistem bileşenleri, hangi uygulamaların uygulamanızla etkileşimde bulunabileceğini kısıtlayabilir.