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, izinlerin nasıl kullanılacağına dair üst düzey bir iş akışı, farklı izin türlerinin açıklamaları ve uygulamanızda izinleri kullanmaya yönelik bazı en iyi uygulamalar da dahil olmak üzere Android izinlerinin nasıl çalıştığına dair genel bir bakış sunulmaktadır. Diğer sayfalarda ise 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 nasıl etkileşim kurabileceğini kısıtlama konuları açıklanmaktadır.
Android uygulama izinlerinin tam listesini görüntülemek için izinler API'si referans sayfasını ziyaret edin.
İzinler iş akışını gösteren bazı örnek uygulamaları görüntülemek için GitHub'daki Android izinleri örnekleri deposunu ziyaret edin.
İzinleri kullanma iş akışı
Uygulamanız, kısıtlanmış verilere erişim veya kısıtlanmış işlemler gerektirebilecek işlevler sunuyorsa izinleri beyan etmenize gerek kalmadan bilgileri alıp işlemleri gerçekleştirebilir misiniz? Uygulamanızda fotoğraf çekme, medya oynatmayı duraklatma ve alakalı reklamlar gösterme gibi birçok kullanım alanını herhangi bir izin bildirmenize gerek kalmadan karşılayabilirsiniz.
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 için uygulamanızın bir adım daha ileri giderek çalışma zamanında izin istemesi gerekir.
Ş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 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 izni verir veya uygulamanızın, sistemi ya da diğer uygulamaları en az düzeyde etkileyen kısıtlanmış işlemler gerçekleştirmesine olanak tanır. Uygulamanızda yükleme zamanı izinlerini beyan ettiğinizde, uygulama mağazası, kullanıcılara bir uygulamanın ayrıntılar sayfasını görüntülediklerinde yükleme zamanı izni bildirimi gösterir (Şekil 2'de gösterildiği gibi). Sistem, kullanıcı uygulamanızı yüklediğinde uygulamanıza otomatik olarak izin verir.
Android, normal izinler ve imza izinleri 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 verilere ve işlemlere erişime izin verir ancak kullanıcının gizliliği ve diğer uygulamaların çalışması açısından çok az risk oluşturur.
Sistem, normal izinlere normal
koruma düzeyini atar.
İmza izinleri
Sistem, bir uygulamaya yalnızca izin tanımlayan uygulama veya işletim sistemiyle aynı sertifikayla 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 imzası izinleri gerektirir.
Sistem, imza izinlerine signature
koruma düzeyini atar.
Çalışma zamanı izinleri
Çalışma zamanı izinleri (tehlikeli izinler olarak da bilinir), uygulamanıza kısıtlanmış verilere ek erişim izni verir veya uygulamanızın sistemi ve diğer uygulamaları daha fazla etkileyen kısıtlanmış işlemler 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ı 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österir.
Çalışma zamanında istenen izinlerin çoğu, hassas bilgiler içerebilecek kısıtlanmış verilerin özel bir türü olan özel kullanıcı verilerine erişir. Konum ve iletişim bilgileri, özel kullanıcı verilerine örnek olarak 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. Ayrıca, platform ve OEM'ler genellikle diğer uygulamaların üzerine çizme gibi özellikle güçlü işlemlere erişimi korumak istediklerinde özel izinler tanımlar.
Sistem ayarlarındaki Özel uygulama erişimi sayfasında, kullanıcı tarafından etkinleştirilebilen bir dizi işlem bulunur. Bu işlemlerin çoğu özel izinler olarak uygulanır.
Özel izinler 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 aynı gruba ait olabilir. Çünkü her ikisi de uygulamanın SMS ile etkileşimiyle ilgilidir.
İzin grupları, bir uygulama yakından ilişkili izinler istediğinde sisteme sunulan sistem iletişim kutularının sayısını en aza indirmeye yardımcı olur. Bir kullanıcıya uygulama için izin verme istemi gösterildiğinde aynı gruba ait izinler aynı arayüzde gösterilir. Ancak izinler, grupları haber vermeden 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 özelliklerine dayanı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 kontrole sahiptir.
- Şeffaflık: Kullanıcı, bir uygulamanın hangi verileri kullandığını ve bu verilere neden eriştiğini anlar.
- Minimum veri toplama: Bir uygulama, yalnızca kullanıcının başlattığı 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 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ı izinlerini 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ının mesajlaşma ekranına gidip Sesli mesaj gönder düğmesine basmasını 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ı da devralınır. Her bağımlılığın gerektirdiği izinler ve bu izinlerin ne için kullanıldığı hakkında bilgi sahibi olun.
Şeffaf olun
Kullanıcılardan izin isterken hangi verilere neden erişim sağlayacağınızı ve izinler reddedilirse hangi işlevlerin etkileneceğini açıkça ifade edin ki bilinçli kararlar verebilsinler.
Sistem erişimlerini açık hale getirme
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 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şlevselliği istemek için kullanılmaz. Uygulamanızın sistem bileşenleri, diğer uygulamalarla etkileşimleri kısıtlama sayfasında açıklandığı gibi, hangi uygulamaların uygulamanızla etkileşim kurabileceğini kısıtlayabilir.