Sobes.tech
Junior

Android-də hansı icazə növləri (permissions) mövcuddur?

sobes.tech Süni İntellekt

AI-dan cavab

Android-də, tətbiqin qorunan resurslara və istifadəçinin məlumatlarına giriş səviyyələrini müəyyən edən müxtəlif icazə növləri mövcuddur.

  • Normal icazələr: Minimal riskli icazələr. Tətbiq quraşdırıldıqda avtomatik verilir və işləmə zamanı istifadəçinin açıq razılığı tələb edilmir. Məsələn, internetə giriş (android.permission.INTERNET).
  • Təhlükəli icazələr: Yüksək riskli icazələr. Tətbiqin işləmə zamanı istifadəçinin açıq razılığını tələb edir. Bu resurslara giriş gizlilik və ya cihazın işləməsinə təsir edə bilər. Məsələn, əlaqələrə giriş (android.permission.READ_CONTACTS), kamera (android.permission.CAMERA).
  • İmza icazələri: Eyni sertifikatla imzalanmış tətbiqlərə verilə bilən icazələr. Bu, eyni sistem və ya tətbiq dəstindəki komponentlər arasında girişin idarə olunması üçün istifadə olunur.
  • İmza və ya sistem icazələri: Bu icazələr, ya eyni sertifikatla imzalanmış tətbiqlərə, ya da sistem bölməsində yerləşən tətbiqlərə verilə bilər.

Bundan əlavə, aşağıdakı kimi fərqləndirilə bilər:

  • Quraşdırma zamanı icazələr: Tətbiqin quraşdırılması zamanı tələb olunan və verilən icazələr. normalimza icazələrini əhatə edir.
  • İş vaxtı icazələr: Android 6.0 (API səviyyəsi 23) və yuxarı cihazlarda tətbiq işləyərkən tələb olunan icazələr. təhlükəli icazələrə daxildir.
  • Xüsusi icazələr: Verilməsi üçün xüsusi addımlar tələb edən icazə sinfi. Məsələn, digər pəncərələr üzərində yerləşdirmə (SYSTEM_ALERT_WINDOW) və ya sistem parametrlərinin dəyişdirilməsi (WRITE_SETTINGS). Bu icazələr normal və ya təhlükəli deyil.

Tətbiqin manifestində bütün zəruri icazələr tələb olunur:

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

Təhlükəli icazələr işləmə zamanı tələb olunur:

// Kontaktların oxunması üçün icazə tələb etmə nümunəsi
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 {
    // İcazə artıq verilib, əməliyyat həyata keçirilə bilər
}