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