Junior
Android'de hangi izin türleri (permissions) vardır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Android'de, uygulamanın korumalı kaynaklara ve kullanıcının verilerine erişim seviyelerini belirleyen çeşitli izin türleri vardır.
- Normal izinler: Düşük riskli izinler. Uygulama yüklemesi sırasında otomatik olarak verilir ve çalışma sırasında kullanıcının açık onayı gerekmez. Örneğin, internet erişimi (
android.permission.INTERNET). - Tehlikeli izinler: Yüksek riskli izinler. Uygulama çalışırken kullanıcının açık onayını gerektirir. Bu kaynaklara erişim, cihazın gizliliğini veya işlevselliğini etkileyebilir. Örneğin, kişiler erişimi (
android.permission.READ_CONTACTS), kamera (android.permission.CAMERA). - İmza izinleri: Aynı sertifikayla imzalanmış uygulamalara verilebilen izinler. Bu izinler, aynı sistem veya uygulama seti içindeki bileşenler arasındaki erişimi kontrol etmek için kullanılır.
- İmza veya sistem izinleri: Bu izinler, ya aynı sertifikayla imzalanmış uygulamalara ya da sistem bölümünde bulunan uygulamalara verilebilir.
Ayrıca, şu şekilde ayırt edilebilir:
- Kurulum zamanında izinler: Uygulama kurulum sırasında talep edilen ve verilen izinler.
normalveimzaizinlerini içerir. - Çalışma zamanında izinler: Android 6.0 (API seviyesi 23) ve üzeri cihazlarda uygulama çalışırken talep edilen izinler.
tehlikeliizinleri içerir. - Özel izinler: Verilmesi için özel adımlar gerektiren özel izin sınıfı. Örneğin, diğer pencerelerin üzerine çıkma (
SYSTEM_ALERT_WINDOW) veya sistem ayarlarını değiştirme (WRITE_SETTINGS). Bunlar nenormalne detehlikeliizinlere aittir.
Uygulamanın manifest dosyasında, gerekli tüm izinler talep edilir:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.CAMERA" />
<application
...
>
...
</application>
</manifest>
Tehlikeli izinler, çalışma zamanında talep edilir:
// Kişileri okumak için izin talep örneği
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.READ_CONTACTS)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
arrayOf(Manifest.permission.READ_CONTACTS),
MY_PERMISSIONS_REQUEST_READ_CONTACTS)
} else {
// İzin zaten verildi, işlemi gerçekleştirebiliriz
}