Location Permission mobil ishlanmada: bu nima, kirish darajalari va ishlash prinsipi

Muallif: IT Sectr Nashr etilgan: 2026-05-21 O'qish vaqti: 8 daq

Location Permission — bu mobil ilova foydalanuvchidan uning geografik joylashuvi haqidagi ma'lumotlarga kirish uchun so'raydigan ruxsatdir. Ushbu ruxsatsiz ilova qurilmaning koordinatalarini aniqlay olmaydi, demak geolokatsiya funksiyalarini taqdim eta olmaydi. Apple Developer Documentation, 2024 ma'lumotlariga ko'ra, geolokatsiya xizmatlaridan foydalanadigan barcha ilovalar tizim dialogi orqali foydalanuvchining aniq roziligini so'rashi shart.

Asosiy ma'lumotlar

  • Location Permission — mobil ilovalarda qurilma geolokatsiyasiga kirish uchun majburiy ruxsat.
  • Kirish darajalari ikkala platformada fon va ilovadan foydalanish vaqtida bo'linadi.
  • Android aniq va taxminiy koordinatalarni aniqlash uchun ACCESS_FINE_LOCATION va ACCESS_COARSE_LOCATION dan foydalanadi.
  • iOS Info.plist ga NSLocationWhenInUseUsageDescription va NSLocationAlwaysUsageDescription kalitlarini qo'shishni talab qiladi.
  • Ruxsat so'rovi ilovaga joylashuv ma'lumotlari nima uchun kerakligi haqida tushunarli tushuntirishni o'z ichiga olishi kerak.

Location Permission nima?

Location Permission — bu operatsion tizimning ilovalarning qurilmaning geografik joylashuvi haqidagi ma'lumotlarga kirishini tartibga soluvchi mexanizmidir. Foydalanuvchining aniq roziligisiz ilova GPS koordinatalarini, Wi-Fi tarmoqlari ma'lumotlarini yoki mobil aloqa minoralari haqidagi axborotni ololmaydi.

Android va iOS mobil platformalari o'zlarining ruxsat tizimlarini qo'llaydilar, ammo umumiy mantiq bir xil: ilova kerakli ruxsatlarni manifest yoki konfiguratsiya faylida e'lon qiladi, so'ngra ularni ish vaqtida so'raydi. Android Developers, 2024 ma'lumotlariga ko'ra, Android 10 dan boshlab barcha geolokatsiya ruxsatlari xavfli toifaga kiradi va ish vaqtida so'rovni talab qiladi.

Bunday yondashuvning sababi foydalanuvchi maxfiyligini himoya qilishdir. Joylashuv ma'lumotlari harakat yo'nalishlarini qurish, ish va dam olish joylarini aniqlash, shuningdek shaxsni identifikatsiyalash imkonini beradi. Shuning uchun ikkala platforma so'rov dialogida shaffof tushuntirish talab qiladi: ilova geolokatsiyaga kirish nima uchun kerakligini ko'rsatishi kerak.

Nega geolokatsiya ruxsati kerak

Geolokatsiya ruxsati funksionalligi foydalanuvchining jismoniy joylashuvini bilishga bog'liq bo'lgan har qanday ilova uchun zarurdir. Xaritalar va navigatsiya, yetkazib berish ilovalari, ob-havo xizmatlari, geoteglash bilan ijtimoiy tarmoqlar — ushbu dastur toifalarining barchasi Location Permission talab qiladi.

Ushbu ruxsatsiz ilova qurilma koordinatalarini mavjud usullarning hech biri bilan aniqlay olmaydi: na GPS moduli orqali, na Wi-Fi skanerlash orqali, na mobil aloqa minoralari bo'yicha joylashuvni aniqlash orqali. Foydalanuvchi istalgan vaqtda tizim sozlamalarida ruxsatni bekor qilishi mumkin, shundan so'ng ilova rad etishni to'g'ri qayta ishlashi kerak.

Pew Research Center (2024) tadqiqotiga ko'ra, foydalanuvchilarning taxminan 45 foizi geolokatsiyani asosiy funksionallik uchun ishlatmaydigan ilovalarda unga kirishni bekor qiladi. Bu shuni anglatadiki, ishlab chiquvchi so'rovni aniq asoslashi va Location Permissiondan bosh tortganlar uchun muqobil mexanizmlarni taklif qilishi kerak.

Huquqiy talablar

Yevropada GDPR va Rossiyada 152-FZ qonuni joylashuv ma'lumotlarini qayta ishlash uchun axborotli rozilik olishni talab qiladi. Ilova nafaqat tizim dialogi orqali ruxsat so'rashi, balki ma'lumotlarni yig'ish maqsadlari haqida alohida bildirishnoma taqdim etishi kerak. Ushbu talablarni buzish 20 million yevrogacha yoki kompaniya yillik aylanmasining 4 foizigacha jarimaga olib keladi.

Ruxsat yo'qligining oqibatlari

Agar ilova Location Permission so'ramasa yoki foydalanuvchi kirishni rad etsa, ishlab chiquvchi zaxira stsenariyni ta'minlashi kerak. Xarita ilovasi uchun bu manzilni qo'lda kiritish, yetkazib berish ilovasi uchun saqlangan manzillar ro'yxatidan tanlash, ob-havo xizmati uchun IP manzil bo'yicha shaharni aniqlash bo'lishi mumkin. Graceful degradation (silliq degradatsiya) Google va Apple tomonidan tavsiya etilgan standart amaliyotdir.

Geolokatsiyaga kirish darajalari

Geolokatsiyaga kirish darajalari Android va iOS da farqlanadi, ammo umumiy g'oya bir xil: kirish qanchalik aniq bo'lsa, platforma ilovaga shunchalik qattiq talablar qo'yadi.

Kirish darajasiAndroidiOS
Foydalanish vaqtidaFaqat ilova faol bo'lgandaWhen In Use — faqat ilovada
FonAlways — doimiy, hatto fondaAlways — qo'shimcha App Store tekshiruvi talab qilinadi
TaxminiyACCESS_COARSE_LOCATION (500 m gacha aniqlik)Precision = Off opsiyasi bilan (iOS 14+)

Android da ACCESS_FINE_LOCATION va ACCESS_COARSE_LOCATION

ACCESS_FINE_LOCATION bir necha metr xato bilan aniq GPS koordinatalariga kirish beradi. Ushbu ruxsatni manifestda e'lon qilish uchun android.permission.ACCESS_FINE_LOCATION konstantasidan foydalaniladi. ACCESS_COARSE_LOCATION esa Wi-Fi va mobil minora ma'lumotlari asosida 500 metrgacha aniqlik bilan taxminiy joylashuvni ta'minlaydi.

iOS da When In Use va Always

When In Use (foydalanish vaqtida) ilovaga koordinatalarni faqat ekranda ochiq bo'lganda olishga imkon beradi. Always (har doim) hatto fon rejimida ham geolokatsiyaga kirish beradi, ammo App Store da majburiy ko'rib chiqishni talab qiladi. iOS 14 dan boshlab, foydalanuvchi Precision kaliti orqali har bir ilova uchun aniq joylashishni alohida o'chirishi mumkin.

Android da Location Permission so'rovi

Android da Location Permission so'rovi ikki bosqichda amalga oshiriladi: ruxsatlarni manifestda e'lon qilish va kodda ish vaqtida so'rov. Android 6.0 (API 23) dan boshlab, barcha xavfli ruxsatlar o'rnatish vaqtida emas, balki ilova ishlashi paytida so'raladi.

Manifestda e'lon qilish

Birinchi qadam AndroidManifest.xml fayliga kerakli ruxsatlarni qo'shishdir. Aniq va taxminiy joylashish uchun turli konstantalar ishlatiladi.

xml
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

Kotlin da ish vaqtida so'rov

Manifestda e'lon qilgandan so'ng, ilova kodida ruxsat so'rovi uchun tizim dialogini chaqirish kerak. Activity Result API dan foydalanib Kotlin misolini ko'rib chiqamiz.

kotlin
private val locationPermissionRequest =
    registerForActivityResult(ActivityResultContracts.RequestMultiplePermissions()) { permissions ->
    when {
        permissions.getOrDefault(Manifest.permission.ACCESS_FINE_LOCATION, false) -> {
            // Ruxsat olindi
            getLocation()
        }
        permissions.getOrDefault(Manifest.permission.ACCESS_COARSE_LOCATION, false) -> {
            // Faqat taxminiy joylashuv
            getCoarseLocation()
        }
        else -> {
            // Foydalanuvchi rad etdi
            showLocationExplanation()
        }
    }
}

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    checkLocationPermission()
}

Rad etishni qayta ishlash va qayta so'rov

Agar foydalanuvchi kirishni rad etgan bo'lsa, Android tizimi dialogni avtomatik ravishda qayta ko'rsatishga ruxsat bermaydi. Ishlab chiquvchi dastlabki tushuntirishni ko'rsatish uchun shouldShowRequestPermissionRationale ni chaqirishi kerak. Never Ask Again bayrog'i bilan qayta rad etishda foydalanuvchini tizim sozlamalariga yo'naltirish lozim.

kotlin
private fun checkLocationPermission() {
    when {
        ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) ==
            PackageManager.PERMISSION_GRANTED -> {
            getLocation()
        }
        ActivityCompat.shouldShowRequestPermissionRationale(this,
            Manifest.permission.ACCESS_FINE_LOCATION) -> {
            showRationaleDialog {
                requestLocationPermission()
            }
        }
        else -> {
            openAppSettings()
        }
    }
}

iOS da Location Permission so'rovi

iOS da Location Permission so'rovi Info.plist fayliga maxsus kalitlarni qo'shishni va CLLocationManager sinfi metodini chaqirishni talab qiladi. Apple maxfiylikka alohida e'tibor beradi, shuning uchun so'rov dialogidagi tushuntirish matni imkon qadar aniq bo'lishi kerak.

Info.plist sozlamalari

iOS da joylashuvni so'rash uchun Info.plist ga bir yoki ikkala kalitni qo'shish kerak: foydalanish vaqtida kirish uchun NSLocationWhenInUseUsageDescription va fon kirishi uchun NSLocationAlwaysAndWhenInUseUsageDescription. Har bir kalitning qiymati foydalanuvchiga dialogda ko'rsatiladigan satrdir.

xml
<key>NSLocationWhenInUseUsageDescription</key>
<string>Ilova xaritadagi eng yaqin nuqtalarni ko'rsatish uchun sizning joylashuvingizga muhtoj.</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>Ilova marshrutni kuzatish uchun fonda geolokatsiyaga kirishga muhtoj.</string>

Swift da so'rov

Swift kodida so'rov CLLocationManager namunasi orqali amalga oshiriladi. Kerakli kirish darajasiga qarab requestWhenInUseAuthorization yoki requestAlwaysAuthorization chaqiriladi.

swift
import CoreLocation

class LocationManager: NSObject, CLLocationManagerDelegate {
    private let manager = CLLocationManager()

    func requestLocationAccess() {
        manager.delegate = self
        manager.requestWhenInUseAuthorization()
    }

    func locationManagerDidChangeAuthorization(_ manager: CLLocationManager) {
        switch manager.authorizationStatus {
        case .authorizedWhenInUse, .authorizedAlways:
            startLocationUpdates()
        case .denied, .restricted:
            showSettingsAlert()
        case .notDetermined:
            break
        }
    }
}

Platformalar orasidagi farq

Android dan farqli o'laroq, iOS ishlab chiquvchiga shouldShowRequestPermissionRationale tekshirish metodini taqdim etmaydi. Tizim tushuntirishni qachon ko'rsatishni o'zi hal qiladi. Bundan tashqari, iOS da foydalanuvchi ruxsatni faqat tizim sozlamalari orqali o'zgartirishi mumkin — ilova foydalanuvchi tanlov qilganidan keyin tizim dialogini qayta chaqira olmaydi. RequestAlwaysAuthorization avval When In Use ni so'raydi, so'ngra birinchi rozilik olingandan keyin fon kirishi uchun alohida dialog ko'rsatadi.

Geolokatsiya bilan ishlashning eng yaxshi amaliyotlari

Location Permission bilan ishlashning eng yaxshi amaliyotlari foydalanuvchi rad etishlarini kamaytirish va ilova do'konlari talablariga javob berishga yordam beradi. Google va Apple tavsiyalar e'lon qilgan, ularga rioya qilish ilovaning tasdiqlanish ehtimolini oshiradi.

Ruxsatni kontekstda so'rang

Location Permission so'rov dialogini ilova ishga tushishi bilanoq ko'rsatmang. Ilovani endi ochgan foydalanuvchi hali geolokatsiyaga kirishni nima uchun ta'minlashi kerakligini tushunmaydi. Contextual request dialog foydalanuvchiga haqiqatan ham ruxsat talab qiladigan funksiya kerak bo'lgan paytda paydo bo'lishini nazarda tutadi. Masalan, “Eng yaqin do'konni top” tugmasini bosganda.

Sababni oldindan tushuntiring

Tizim dialogidan oldin o'zingizning tushuntirish ekraningizni (pre-permission screen) ko'rsating. Unda ilovaga geolokatsiya nima uchun kerakligi, qanday ma'lumotlar yig'ilishi va ulardan qanday foydalanilishini tushuntiring. Foydalanuvchi ekraningizda “Ruxsat berish” tugmasini bosgandan so'ng, tizim dialogini ko'rsating. Appsflyer (2024) ma'lumotlariga ko'ra, bunday yondashuv rozilik konversiyasini 25-35% ga oshiradi.

Always ni keraksiz so'ramang

Geolokatsiyaga fon kirishi faqat fonda ishlaydigan ilovalar uchun kerak: navigatorlar, faoliyat kuzatuvchilari, yetkazib berish ilovalari. Agar ilovangizga koordinatalar faqat ekran ochiq bo'lganda kerak bo'lsa, When In Use ni so'rang. App Store ilovani rad etadi, agar Always funksional jihatdan asoslanmagan bo'lsa. Android da fon kirishi qo'shimcha ravishda ACCESS_BACKGROUND_LOCATION ruxsati orqali tartibga solinadi.

Tez-tez beriladigan savollar

Agar foydalanuvchi Location Permission ni rad etsa nima bo'ladi?

Ilova rad etishni to'g'ri qayta ishlashi va muqobil stsenariy taklif qilishi kerak. Masalan, manzilni qo'lda kiritish yoki shaharni IP manzil bo'yicha aniqlash. Tizim dialogi qayta ko'rsatilmaydi — foydalanuvchini sozlamalarga yo'naltirish kerak.

Location Permission ni tushuntirishsiz so'rash mumkinmi?

Texnik jihatdan ha, tizim dialogini oldingi ekransiz chaqirish mumkin. Biroq tushuntirishsiz rozilik konversiyasi 30-40% ni tashkil qiladi, oldingi ekran bilan esa 60-75%. Apple va Google har doim so'rov sababini tushuntirishni tavsiya qiladi.

Android da Location Permission statusini qanday tekshirish mumkin?

ContextCompat.checkSelfPermission dan Manifest.permission.ACCESS_FINE_LOCATION konstantasi bilan foydalaning. Metod PERMISSION_GRANTED yoki PERMISSION_DENIED qaytaradi, bu tizim dialogini chaqirmasdan joriy statusni aniqlash imkonini beradi.

ACCESS_FINE_LOCATION ACCESS_COARSE_LOCATION dan qanday farq qiladi?

ACCESS_FINE_LOCATION 3-10 metr xato bilan aniq GPS koordinatalariga kirish beradi. ACCESS_COARSE_LOCATION Wi-Fi va mobil minoralar asosida 500 metrgacha aniqlik bilan taxminiy joylashuvni ta'minlaydi. Android 12+ da ishlab chiquvchi ikkala ruxsatni bir vaqtning o'zida so'rashi mumkin.

BLE skanerlari uchun Location Permission kerakmi?

Android da BLE qurilmalarini skanerlash uchun ACCESS_FINE_LOCATION yoki ACCESS_COARSE_LOCATION talab qilinadi, chunki BLE signallari joylashuv triangulyatsiyasi uchun ishlatilishi mumkin. iOS da BLE uchun Bluetooth ruxsati yetarli, Location Permission talab qilinmaydi.

Xulosa

  • Location Permission — ilovalarning qurilma geolokatsiyasiga kirishini tartibga soluvchi asosiy maxfiylikni himoya mexanizmi.
  • Kirish darajalari iOS da foydalanish vaqtida (When In Use) va fon (Always), Android da esa aniq (ACCESS_FINE_LOCATION) va taxminiy (ACCESS_COARSE_LOCATION) ni o'z ichiga oladi.
  • Android manifestda ruxsatlarni e'lon qilishni va API 23 dan boshlab Activity Result API orqali ish vaqtida so'rovni talab qiladi.
  • iOS Info.plist ga kalitlarni qo'shishni va so'rov matnida sababni majburiy ko'rsatish bilan CLLocationManager metodlarini chaqirishni talab qiladi.
  • Contextual request — dialog ilova ishga tushganda emas, balki ehtiyoj paytida paydo bo'ladigan eng yaxshi amaliyot.
  • Pre-permission screen Appsflyer (2024) ma'lumotlariga ko'ra rozilik konversiyasini 25-35% ga oshiradi.
  • Foydalanuvchi rad etishi geolokatsiyadan foydalanmagan holda muqobil stsenariy — graceful degradation ni talab qiladi.

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing