Junior
Androidda qanday ruxsatlar (permissions) mavjud?
sobes.tech AI
AIdan javob
Androidda, ilovalar uchun himoyalangan resurslar va foydalanuvchi ma'lumotlariga kirish darajalarini belgilovchi bir nechta ruxsat turlari mavjud.
- Oddiy ruxsatlar: Minimal xavfga ega ruxsatlar. Ular dastur o'rnatilganda avtomatik ravishda beriladi va ish vaqtida foydalanuvchining aniq roziligini talab qilmaydi. Masalan, internetga kirish (
android.permission.INTERNET). - Xatarlik ruxsatlar: Yuqori xavfga ega ruxsatlar. Ular dastur ish vaqtida foydalanuvchidan aniq rozilikni talab qiladi. Bu resurslarga kirish maxfiylik yoki qurilmaning ishlashiga ta'sir qilishi mumkin. Masalan, kontaktlarga kirish (
android.permission.READ_CONTACTS), kamera (android.permission.CAMERA). - Imzo ruxsatlari: Bir xil sertifikat bilan imzolangan ilovalarga berilishi mumkin bo'lgan ruxsatlar. Ular bir tizim yoki ilovalar to'plamidagi komponentlar o'rtasida kirishni nazorat qilish uchun ishlatiladi.
- Imzo yoki tizim ruxsatlari: Bu ruxsatlar, yoki imzolangan ilovalarga yoki tizim bo'limida joylashgan ilovalarga berilishi mumkin.
Shuningdek, quyidagilarni ajratish mumkin:
- O'rnatish vaqtida ruxsatlar: Ilovani o'rnatish vaqtida so'raladigan va beriladigan ruxsatlar. Ular
oddiyvaimzoruxsatlarini o'z ichiga oladi. - Ish vaqtida ruxsatlar: Android 6.0 (API daraja 23) va undan yuqori qurilmalarda ish vaqtida so'raladigan ruxsatlar. Ular
xatarlikruxsatlarni o'z ichiga oladi. - Maxsus ruxsatlar: Maxsus qadamlarni talab qiladigan ruxsatlar sinfi. Masalan, boshqa oynalar ustiga chizish (
SYSTEM_ALERT_WINDOW) yoki tizim sozlamalarini o'zgartirish (WRITE_SETTINGS). Ularoddiyyokixatarlikruxsatlariga kirmaydi.
Ilovaning manifest faylida barcha zarur ruxsatlar so'raladi:
<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>
Xatarlik ruxsatlar ish vaqtida so'raladi:
// Kontaktlarni o'qish uchun ruxsat so'rash misoli
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 {
// Ruxsat allaqachon berilgan, operatsiyani bajarish mumkin
}