Microphone Permission: mohiyati, kirish turlari va ishlash prinsipi

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

Microphone Permission — bu dasturning qurilma mikrofoniga kirishi uchun zarur bo‘lgan tizim ruxsatidir. Audio yozish, ovozli xabarlar yuborish, video qo‘ng‘iroqlar va nutqni aniqlash uchun talab qilinadi. Apple Developer Documentation, 2024 ma’lumotlariga ko‘ra, audio olishdan foydalanadigan barcha ilovalar tizim muloqot oynasi orqali foydalanuvchining aniq roziligini so‘rashi shart.

Asosiy ma’lumotlar

  • Microphone Permission — mobil qurilmada audio yozadigan har qanday dastur uchun majburiy ruxsatdir.
  • Android API 23 dan boshlab Manifest.permission.RECORD_AUDIO dan ish vaqti so‘rovi bilan foydalanadi.
  • iOS Info.plist da NSMicrophoneUsageDescription kaliti va AVAudioSession.requestRecordPermission chaqiruvini talab qiladi.
  • Mikrofon faollashtirilgan paytda so‘rov (Ovozli xabarni yozish tugmasi) tasdiqlash imkoniyatini oshiradi.
  • Fonda ishlash mikrofon bilan qo‘shimcha ruxsatlar va qat’iy asoslashni talab qiladi.

Microphone Permission mohiyati

Microphone Permission — bu qurilma mikrofonidan ruxsatsiz audio yozilishining oldini oluvchi maxfiylikni himoya qilish mexanizmidir. Mobil platformalar mikrofoni eng nozik resurslardan biri deb hisoblaydi, chunki ovoz yozuvi shaxsiy suhbatlar, atrof-muhit va maxfiy ma’lumotlarni egallashi mumkin.

Android RECORD_AUDIO ni xavfli ruxsat sifatida tasniflaydi, iOS esa Info.plist da NSMicrophoneUsageDescription kalitini majburiy qo‘shishni talab qiladi. Ikkala platformada so‘rov ish vaqtida amalga oshiriladi va foydalanuvchi istalgan vaqtda tizim sozlamalari orqali ruxsatni bekor qilishi mumkin. Tizim ko‘rsatkichi (iOS da to‘q sariq nuqta, Android 12+ da yashil ko‘rsatkich) foydalanuvchiga dastur hozirda mikrofondan foydalanayotganligini bildiradi.

Pew Research Center (2024) tadqiqotiga ko‘ra, mobil qurilma foydalanuvchilarining 54 foizi kamida bir marta dasturga mikrofon kirishini rad etgan. Asosiy sabab — dastur nima uchun audio yozishga muhtojligini tushunmaslikdir. Shu sababli dasturchi mikrofonni ishlatish maqsadini imkon qadar shaffof tarzda tushuntirishi kerak.

Android da mikrofon ruxsati

Android da mikrofon ruxsati manifestda RECORD_AUDIO ni e’lon qilish va dastur kodida ish vaqti so‘rovi orqali so‘raladi. Android 10 dan boshlab, mikrofon kirishi qo‘shimcha ravishda fon ilovalari uchun cheklovlar bilan tartibga solinadi.

AndroidManifest.xml da e’lon qilish

Birinchi qadam — manifest faylida RECORD_AUDIO ruxsatini e’lon qilishdir. Bu e’lonsiz ish vaqti so‘rovi samarali bo‘lmaydi va dastur mikrofon kirishini ololmaydi.

xml
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAPTURE_AUDIO_OUTPUT" />

CAPTURE_AUDIO_OUTPUT — bu uchinchi tomon ilovalari uchun mavjud bo‘lmagan tizim ruxsatidir. Faqat tizim ilovalari tomonidan audio chiqishini olish uchun ishlatiladi. Oddiy ilovalar mikrofondan yozish uchun faqat RECORD_AUDIO ga muhtoj.

Kotlin da ish vaqti so‘rovi

Manifestda e’londan so‘ng ish vaqti so‘rovini amalga oshirish kerak. AudioRecord yordamida mikrofondan audio yozish misolini ko‘rib chiqamiz.

kotlin
private val recordAudioPermission =
    registerForActivityResult(ActivityResultContracts.RequestPermission()) { granted ->
    if (granted) {
        startRecording()
    } else {
        showMicrophoneExplanation()
    }
}

fun startRecording() {
    val sampleRate = 44100
    val bufferSize = AudioRecord.getMinBufferSize(sampleRate,
        AudioFormat.CHANNEL_IN_MONO,
        AudioFormat.ENCODING_PCM_16BIT)
    val recorder = AudioRecord(MediaRecorder.AudioSource.MIC,
        sampleRate, AudioFormat.CHANNEL_IN_MONO,
        AudioFormat.ENCODING_PCM_16BIT, bufferSize)
    recorder.startRecording()
    // Audio ma'lumotlarni buferga yozish
}

Yozish holatini boshqarish

Audio yozish hayotiy siklini to‘g‘ri boshqarish muhimdir. Dastur Android 9 va undan yuqori versiyalarda fon rejimiga o‘tganda, mikrofondan yozish tizim tomonidan to‘xtatilishi mumkin. Android 10 dan boshlab, fonda mikrofon kirishi qo‘shimcha cheklangan: fondagi dastur yozishni boshlay olmaydi va faol yozish to‘xtatiladi. Fonda yozish uchun MediaProjection yoki bildirishnoma bilan Service talab qilinadi.

iOS da mikrofon ruxsati

iOS da mikrofon ruxsati Info.plist da NSMicrophoneUsageDescription kaliti va AVAudioSession.requestRecordPermission metodini chaqirish orqali sozlanadi. Apple so‘rov muloqot oynasida mikrofondan foydalanish sababini majburiy ko‘rsatishni talab qiladi.

Info.plist ni sozlash

NSMicrophoneUsageDescription kaliti mikrofon kirishini so‘raydigan har qanday dastur uchun majburiydir. Busiz dastur audio yozishga urinishda ishdan chiqadi.

xml
<key>NSMicrophoneUsageDescription</key>
<string>Ilova ovozli eslatmalarni yozish va audio xabarlarni yuborish uchun mikrofon kirishiga muhtoj.</string>

Swift da so‘rov

iOS da mikrofon kirish so‘rovi AVAudioSession orqali amalga oshiriladi. Javob olingandan so‘ng dastur audio sessiyani sozlaydi va yozishni boshlaydi.

swift
import AVFAudio

func requestMicrophoneAccess() {
    AVAudioSession.sharedInstance().requestRecordPermission { granted in
        DispatchQueue.main.async {
            if granted {
                self.configureAudioSession()
                self.startAudioRecording()
            } else {
                self.redirectToSettings()
            }
        }
    }
}

private func configureAudioSession() {
    let session = AVAudioSession.sharedInstance()
    do {
        try session.setCategory(.playAndRecord, mode: .default)
        try session.setActive(true)
    } catch {
        print("Audio session error: \(error)")
    }
}

Yozish ko‘rsatkichi

iOS 14 va undan yuqori versiyalarda mikrofondan foydalanadigan dastur holat satrida to‘q sariq ko‘rsatkichni ko‘rsatadi. Foydalanuvchi hozirda qaysi dastur audio yozayotganini ko‘radi. Agar dastur asosli sababsiz fonda mikrofondan foydalansa, Apple yangilanishni rad etishi mumkin. AVAudioSession audio sessiya kategoriyasi va rejimini sozlashga, dasturning fon rejimiga o‘tishdagi xatti-harakatini aniqlashga imkon beradi.

Audio olish stsenariylari

Mikrofondan foydalanish stsenariylari mobil ilovalarda xilma-xildir: oddiy ovoz yozishdan real vaqtda murakkab audio oqimini qayta ishlashgacha.

Ovozli xabarlar va eslatmalar

Messengerlar va eslatma ilovalari ovozli xabarlarni yozish uchun mikrofondan foydalanadi. Bu holda Microphone Permission yozish tugmasi bosilganda so‘raladi. Yozish tugagandan so‘ng audio sessiyani to‘xtatish muhimdir, shunda boshqa dasturlar mikrofondan foydalanishi mumkin. iOS da AVAudioSession va Android da AudioManager audio fokusni boshqaradi.

Nutqni aniqlash

Ovozli kiritishga ega dasturlar (qidirish, diktant, ovozli yordamchilar) mikrofondan nutqni aniqlash API si bilan birga foydalanadi. Android da bu SpeechRecognizer android.speech dan, iOS da — SFSpeechRecognizer Speech framework dan. Nutqni aniqlash uchun aniqlash xizmatlariga kirish uchun qo‘shimcha ruxsat talab qilinishi mumkin (Android da SPEECH, iOS da SFSpeechRecognizer.requestAuthorization).

Video qo‘ng‘iroqlar va striming

Video qo‘ng‘iroq dasturlari (WebRTC, Zoom, Telegram) Microphone Permission ni Camera Permission bilan bir vaqtda so‘raydi. Bu kontekstda ikkala ruxsatni bir vaqtning o‘zida emas, balki ketma-ket so‘rash muhimdir, chunki foydalanuvchi muloqot oynalari bilan ortiqcha yuklanmasligi kerak. WebRTC audio va video olish uchun getUserMedia dan foydalanadi, ammo mobil platformalarda oldindan tizim ruxsatlari talab qilinadi.

Audio sessiyani sozlash

Sifatli yozish uchun audio sessiya parametrlarini to‘g‘ri sozlash talab qilinadi. iOS da .playAndRecord kategoriyasi bir vaqtning o‘zida ovozni ijro etish va yozish imkonini beradi. Android da AudioSource.MIC tanlovi asosiy mikrofondan olishni ta’minlaydi, AudioSource.VOICE_COMMUNICATION esa yozishni ovozli aloqa uchun optimallashtiradi. Qo‘shimcha ravishda, standart CD sifatiga erishish uchun 44100 Gts namuna olish chastotasi va PCM 16 bit formati sozlanishi mumkin.

Yozish uzilishlarini boshqarish

Audio yozish paytida tizim uzilishlari yuz berishi mumkin: kiruvchi qo‘ng‘iroq, budilnik, boshqa dasturdan bildirishnoma. iOS da AVAudioSessionDelegate beginInterruption va endInterruption ni boshqaradi. Android da AudioManager.OnAudioFocusChangeListener dasturga audio fokusni yo‘qotish yoki qaytarish haqida xabar beradi. Uzilishlarni to‘g‘ri boshqarish kutilmagan hodisalarda yozishni saqlash va ma’lumot yo‘qotilishining oldini olish imkonini beradi. Fokus yo‘qolganda yozishni to‘xtatish va qaytgach, foydalanuvchini xabardor qilgan holda davom ettirish tavsiya etiladi.

Audio olishni optimallashtirish

Audio olishni optimallashtirish namuna olish chastotasi, bufer hajmi va kodlash formatini sozlashni o‘z ichiga oladi. Ovozli xabarlar uchun 44100 Gts chastota va mono kanal etarli. Nutqni aniqlash uchun 16000 Gts chastota talab qilinishi mumkin.

iOS da yozish kechikishini sozlash uchun AVAudioSession.setPreferredIOBufferDuration dan foydalaning. Kichik bufer kechikishni kamaytiradi, ammo protsessor yukini oshiradi. Android da AudioRecord.getMinBufferSize berilgan parametrlar uchun minimal bufer hajmini qaytaradi. Tizim yuqori yuklangan sharoitda yozish paytida ma’lumot yo‘qotilishining oldini olish uchun ushbu minimaldan kam bo‘lmagan buferdan foydalanish tavsiya etiladi.

Mikrofon bilan ishlashning eng yaxshi amaliyotlari

Eng yaxshi amaliyotlar Microphone Permission bilan ishlash foydalanuvchi ishonchini oshirish va platforma talablariga muvofiqlikni ta’minlashga qaratilgan.

Maqsadni yozishdan oldin tushuntiring

Microphone Permission so‘rashdan oldin dasturning nima uchun mikrofonga muhtojligini va yozish qanday ishlatilishini tushuntiruvchi ekranni ko‘rsating. Ovozning serverga yuboriladimi yoki mahalliy qayta ishlanishini ko‘rsating. Foydalanuvchilar yozish qurilmadan chiqib ketmasligini tushunsalar, kirishga ko‘proq rozilik beradilar. Mahalliy qayta ishlash (on-device ASR) ishonch uchun kuchli dalildir.

Fonda yozishni to‘xtating

Agar dastur fonda audio yozishni talab qilmasa, fon rejimiga o‘tganda mikrofonni albatta to‘xtating. Bu nafaqat batareyani tejaydi, balki yozish ko‘rsatkichini ko‘rgan foydalanuvchining salbiy munosabatining oldini oladi. iOS da yozishni to‘xtatish uchun UIApplicationDelegate ning applicationDidEnterBackground metodlaridan foydalaning. Android da Activity yoki Service da onPause va onStop ni boshqaring.

Yozish ko‘rsatkichlaridan foydalaning

Audio olish paytida o‘z yozish ko‘rsatkichingizni (animatsiyali mikrofon belgisi yoki to‘lqin) ko‘rsating. Bu foydalanuvchiga mikrofonning faolligi haqida xabar beradi va salbiy munosabat xavfini kamaytiradi. Apple va Google maksimal shaffoflik uchun tizim ko‘rsatkichini o‘z UI elementingiz bilan takrorlashni tavsiya qiladi.

Tez-tez beriladigan savollar

Ovozni ijro etish uchun Microphone Permission kerakmi?

Yo‘q, mikrofon ruxsati faqat mikrofondan audio olish uchun talab qilinadi. Ovozni karnay yoki eshitish vositasi orqali ijro etish Microphone Permission ni talab qilmaydi. Ijro etish uchun iOS da audio sessiyani yoki Android da AudioTrack ni sozlash kifoya.

Android da Microphone Permission holatini qanday tekshirish mumkin?

ContextCompat.checkSelfPermission(context, Manifest.permission.RECORD_AUDIO) dan foydalaning. Metod PackageManager.PERMISSION_GRANTED yoki PERMISSION_DENIED qaytaradi. Qo‘shimcha ravishda, PackageManager.hasSystemFeature orqali qurilmada mikrofon mavjudligini tekshiring.

Agar foydalanuvchi Microphone Permission ni rad etsa nima qilish kerak?

Muqobil stsenariyni taklif qiling: ovozli o‘rniga matn kiritish, audiosiz xabar yuborish, tovushsiz video tomosha qilish. Agar ovozli funksiya muhim bo‘lsa, tizim sozlamalarida ruxsatni yoqish bo‘yicha ko‘rsatma va o‘tish tugmasi bo‘lgan ekranni ko‘rsating.

Android 12+ da Microphone Permission qanday ishlaydi?

Android 12 dan boshlab, fondagi dastur mikrofon kirishini ololmaydi. Faol yozish fon rejimiga o‘tganda to‘xtatiladi. Bundan tashqari, Privacy Chip ko‘rsatkichi — holat satrida dasturning mikrofondan foydalanayotganini ko‘rsatuvchi yashil belgi paydo bo‘ldi.

Nima uchun App Store Microphone Permission li dasturni rad etdi?

Eng keng tarqalgan sabablar: NSMicrophoneUsageDescription kalitining yo‘qligi, sababning noaniq tavsifi (“ovozli xabarlarni yozish” o‘rniga “xizmatni yaxshilash uchun”), foydalanuvchining aniq harakatisiz ruxsat so‘rovi yoki asosli funksionalliksiz fonda mikrofondan foydalanish.

Xulosa

  • Microphone Permission — ikkala mobil platformada majburiy bo‘lgan audio olish uchun tizim ruxsati.
  • Android RECORD_AUDIO dan ish vaqti so‘rovi bilan va Android 10 dan boshlab fon kirish cheklovi bilan foydalanadi.
  • iOS Info.plist da NSMicrophoneUsageDescription va sababni majburiy tavsifi bilan AVAudioSession.requestRecordPermission chaqiruvini talab qiladi.
  • Tizim ko‘rsatkichlari (iOS da to‘q sariq nuqta, Android da Privacy Chip) foydalanuvchini mikrofon faolligi haqida xabardor qiladi.
  • Foydalanish stsenariylari ovozli xabarlar, nutqni aniqlash, video qo‘ng‘iroqlar va audio yozishni o‘z ichiga oladi.
  • Fonda yozish ikkala platformada qat’iy cheklangan va qo‘shimcha ruxsatlar va asoslashni talab qiladi.
  • Rad etilganda muqobil stsenariylar (matn kiritish, audiosiz yuborish) dasturning to‘g‘ri ishlashi uchun majburiydir.

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