Sobes.tech
Junior

Android-ში რა ტიპის დაშვებები (permissions) არსებობს?

sobes.tech AI

პასუხი AI-სგან

Androidда колдонмонун корголгон ресурстарына жана колдонуучунун маалыматтарына кирүү деңгээлдерин аныктаган бир нече түрдүү уруксаттар бар.

  • Нормалдуу уруксаттар: Аз коркунучтуу уруксаттар. Алар автоматтык түрдө колдонмону орнотуу учурунда берилет жана иштөө учурунда колдонуучунун так макулдугун талап кылбайт. Мисалы, интернетке кирүү (android.permission.INTERNET).
  • Коркунучтуу уруксаттар: Жогорку коркунучтуу уруксаттар. Алар колдонмону иштетүү учурунда колдонуучунун так макулдугун талап кылат. Бул ресурстарга кирүү жеке жашоону коргоо же түзмөктүн ишине таасир этиши мүмкүн. Мисалы, байланыштарга кирүү (android.permission.READ_CONTACTS), камера (android.permission.CAMERA).
  • Кол коюлган уруксаттар: Бир эле сертификат менен кол коюлган колдонмолорго берилүүчү уруксаттар. Алар бир системанын же колдонмолор топтомунун компоненттеринин ортосундагы кирүүгө көзөмөл жүргүзүү үчүн колдонулат.
  • Кол коюлган же системдик уруксаттар: Бул уруксаттар же бир эле сертификат менен кол коюлган колдонмолорго, же системдик бөлүмдө жайгашкан колдонмолорго берилет.

Мындан тышкары, төмөнкүлөр бөлүнүшү мүмкүн:

  • Орнотуу учурунда берилүүчү уруксаттар: Колдонмону орнотуу учурунда суралган жана берилген уруксаттар. Аларга нормалдуу жана сертификатталган уруксаттар кирет.
  • Ишке киргизүү учурунда уруксаттар: Android 6.0 (API деңгээли 23) жана андан жогору версияларда колдонмону иштетүү учурунда суралган уруксаттар. Аларга коркунучтуу уруксаттар кирет.
  • Өзгөчө уруксаттар: Ар бир уруксаттын өзгөчө түрү, ал уруксатты берүү үчүн атайын кадамдарды талап кылат. Мисалы, башка терезелердин үстүнө чаптоо (SYSTEM_ALERT_WINDOW) же системдик жөндөөлөрдү өзгөртүү (WRITE_SETTINGS). Алар нормалдуу жана коркунучтуу категорияларга кирбейт.

Колдонмонун манифестинде бардык зарыл уруксаттар суралат:

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

коркунучтуу уруксаттарды сурауу ишке киргизүү учурунда жүргүзүлөт:

// Байланыштарды окуу уруксатын сурап жаткан мисал
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 {
    // Уруксат берилген, операцияны жүргүзүүгө болот
}