Microphone Permission: esensya, mga uri ng access at prinsipyo ng paggana

May-akda: IT Sectr Nai-publish: 2026-05-21 Oras ng pagbabasa: 8 min

Microphone Permission — ito ay isang pahintulot ng sistema na kailangan ng app upang ma-access ang mikropono ng device. Kinakailangan ito para sa pag-record ng audio, mga voice message, video call, at speech recognition. Ayon sa Apple Developer Documentation, 2024, lahat ng app na gumagamit ng audio capture ay obligadong humingi ng malinaw na pahintulot ng user sa pamamagitan ng system dialog.

Mga Pangunahing Punto

  • Microphone Permission ay isang mandatoryong pahintulot para sa anumang app na nagre-record ng audio sa mobile device.
  • Android gumagamit ng Manifest.permission.RECORD_AUDIO na may runtime request simula API 23.
  • iOS nangangailangan ng key na NSMicrophoneUsageDescription sa Info.plist at pagtawag sa AVAudioSession.requestRecordPermission.
  • Paghingi sa sandali ng pag-activate ng mikropono (button na “Mag-record ng Voice Message”) nagpapataas ng tsansa ng pag-apruba.
  • Pagtatrabaho sa background gamit ang mikropono ay nangangailangan ng karagdagang pahintulot at mahigpit na pagbibigay-katwiran.

Esensya ng Microphone Permission

Microphone Permission ay isang mekanismo ng proteksyon sa privacy na pumipigil sa hindi awtorisadong pag-record ng audio mula sa mikropono ng device. Inuuri ng mga mobile platform ang mikropono bilang isa sa mga pinakasensitibong resource, dahil ang pag-record ng tunog ay maaaring makakuha ng pribadong usapan, kapaligiran, at kumpidensyal na impormasyon.

Inuuri ng Android ang RECORD_AUDIO bilang mapanganib na pahintulot, at ang iOS ay nangangailangan ng mandatoryong pagdagdag ng key na NSMicrophoneUsageDescription sa Info.plist. Sa parehong platform, ang request ay isinasagawa sa runtime, at ang user ay maaaring anumang oras bawiin ang pahintulot sa pamamagitan ng system settings. Ang system indicator ng pag-record (orange na tuldok sa iOS, berdeng indicator sa Android 12+) ay nagpapahiwatig sa user na kasalukuyang ginagamit ng app ang mikropono.

Ayon sa pananaliksik ng Pew Research Center (2024), 54% ng mga user ng mobile device ay kahit isang beses tumanggi sa pag-access ng mikropono sa isang app. Ang pangunahing dahilan ay hindi pag-unawa kung bakit kailangan ng app ang pag-record ng audio. Kaya naman dapat ipaliwanag ng developer ang layunin ng paggamit ng mikropono nang ganap na malinaw hangga't maaari.

Pahintulot ng Mikropono sa Android

Pahintulot ng mikropono sa Android ay hinihingi sa pamamagitan ng deklarasyon ng RECORD_AUDIO sa manifest at runtime request sa code ng app. Mula Android 10, ang pag-access sa mikropono ay karagdagang kinokontrol ng mga paghihigpit para sa mga background app.

Deklarasyon sa AndroidManifest.xml

Ang unang hakbang ay ideklara ang pahintulot na RECORD_AUDIO sa manifest file. Kung wala ang deklarasyong ito, ang runtime request ay hindi magkakaroon ng epekto at hindi makakakuha ang app ng access sa mikropono.

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

Ang CAPTURE_AUDIO_OUTPUT ay isang system na pahintulot na hindi available sa third-party na app. Ginagamit lamang ito ng mga system app para sa pag-capture ng audio output. Ang mga ordinaryong app ay nangangailangan lamang ng RECORD_AUDIO para mag-record mula sa mikropono.

Runtime Request sa Kotlin

Pagkatapos ng deklarasyon sa manifest, kailangang isagawa ang runtime request. Tingnan natin ang halimbawa ng paggamit ng AudioRecord para mag-record ng audio mula sa mikropono.

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()
    // Pag-record ng audio data sa buffer
}

Pangangasiwa ng Status ng Pag-record

Mahalaga na wastong pangasiwaan ang lifecycle ng pag-record ng audio. Kapag lumipat ang app sa background mode sa Android 9 at mas bago, ang pag-record mula sa mikropono ay maaaring masuspinde ng system. Mula Android 10, ang background access sa mikropono ay higit na limitado: ang app sa background ay hindi maaaring magsimula ng pag-record, at ang aktibong pag-record ay sinuspinde. Para sa background recording, kinakailangan ang MediaProjection o Service na may notification.

Pahintulot ng Mikropono sa iOS

Pahintulot ng mikropono sa iOS ay na-configure sa pamamagitan ng key na NSMicrophoneUsageDescription sa Info.plist at pagtawag sa metodo na AVAudioSession.requestRecordPermission. Apple ay nangangailangan ng mandatoryong pagtukoy ng dahilan ng paggamit ng mikropono sa dialog ng request.

Configuration ng Info.plist

Ang key na NSMicrophoneUsageDescription ay mandatory para sa anumang app na humihingi ng access sa mikropono. Kung wala ito, ang app ay mag-crash kapag sinubukang mag-record ng audio.

xml
<key>NSMicrophoneUsageDescription</key>
<string>Ang app ay nangangailangan ng access sa mikropono para mag-record ng voice notes at magpadala ng audio message.</string>

Request sa Swift

Ang request ng access sa mikropono sa iOS ay isinasagawa sa pamamagitan ng AVAudioSession. Pagkatanggap ng tugon, kino-configure ng app ang audio session at sinisimulan ang pag-record.

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)")
    }
}

Indicator ng Pag-record

Sa iOS 14 at mas bago, ang app na gumagamit ng mikropono ay nagpapakita ng orange na indicator sa status bar. Nakikita ng user kung aling app ang kasalukuyang nagre-record ng audio. Kung ang app ay gumagamit ng mikropono sa background nang walang wastong dahilan, maaaring tanggihan ng Apple ang update. AVAudioSession ay nagbibigay-daan sa pag-configure ng kategorya at mode ng audio session, na tinutukoy ang pag-uugali ng app kapag lumipat sa background mode.

Mga Scenario ng Audio Capture

Mga scenario ng paggamit ng mikropono sa mga mobile app ay magkakaiba: mula sa simpleng pag-record ng boses hanggang sa kumplikadong real-time na pagproseso ng audio stream.

Voice Message at Mga Tala

Ang mga messenger at note-taking app ay gumagamit ng mikropono para mag-record ng voice message. Sa kasong ito, ang Microphone Permission ay hinihingi kapag pinindot ang record button. Pagkatapos ng pag-record, mahalagang itigil ang audio session upang ang ibang app ay magamit ang mikropono. AVAudioSession sa iOS at AudioManager sa Android ay namamahala ng audio focus.

Speech Recognition

Ang mga app na may voice input (paghahanap, dikta, voice assistant) ay gumagamit ng mikropono kasama ng speech recognition API. Sa Android ito ay SpeechRecognizer mula sa android.speech, sa iOS — SFSpeechRecognizer mula sa Speech framework. Para sa speech recognition ay maaaring kailanganin ang karagdagang pahintulot para ma-access ang mga serbisyo ng pagkilala (SPEECH sa Android, SFSpeechRecognizer.requestAuthorization sa iOS).

Video Call at Streaming

Ang mga app para sa video call (WebRTC, Zoom, Telegram) ay humihingi ng Microphone Permission kasabay ng Camera Permission. Sa kontekstong ito, mahalagang hilingin ang parehong pahintulot nang sunud-sunod, hindi sabay-sabay, upang hindi ma-overload ang user ng mga dialog. WebRTC ay gumagamit ng getUserMedia para sa pag-capture ng audio at video, ngunit sa mga mobile platform ay kinakailangan muna ang system permissions.

Configuration ng Audio Session

Para sa mataas na kalidad na pag-record, kinakailangan ang tamang configuration ng mga parameter ng audio session. Sa iOS, ang kategoryang .playAndRecord ay nagbibigay-daan sa sabay na pag-play at pag-record ng tunog. Sa Android, ang pagpili ng AudioSource.MIC ay tinitiyak ang pag-capture mula sa pangunahing mikropono, at ang AudioSource.VOICE_COMMUNICATION ay nag-o-optimize ng pag-record para sa voice communication. Karagdagan, ang sampling frequency na 44100 Hz at PCM 16-bit na format ay maaaring i-configure upang makamit ang standard na CD quality.

Pangangasiwa ng mga Pagkaantala sa Pag-record

Sa panahon ng pag-record ng audio, maaaring mangyari ang system interruptions: papasok na tawag, alarm, notification mula sa ibang app. Sa iOS, ang AVAudioSessionDelegate ay humahawak ng beginInterruption at endInterruption. Sa Android, ang AudioManager.OnAudioFocusChangeListener ay nagpapaalam sa app tungkol sa pagkawala o pagbalik ng audio focus. Ang wastong pangangasiwa ng mga pagkaantala ay nagbibigay-daan upang mapanatili ang recording sa mga hindi inaasahang pangyayari at maiwasan ang pagkawala ng data. Inirerekomenda na i-pause ang pag-record kapag nawala ang focus at ipagpatuloy pagkatapos ng pagbalik nito na may abiso sa user.

Pag-optimize ng Audio Capture

Pag-optimize ng audio capture ay kinabibilangan ng configuration ng sampling frequency, laki ng buffer, at encoding format. Para sa voice message, sapat na ang frequency na 44100 Hz at mono channel. Para sa speech recognition, maaaring kailanganin ang frequency na 16000 Hz.

Sa iOS, gamitin ang AVAudioSession.setPreferredIOBufferDuration para i-configure ang recording latency. Ang mas maliit na buffer ay nagbabawas ng latency ngunit nagpapataas ng CPU load. Sa Android, ang AudioRecord.getMinBufferSize ay nagbabalik ng minimum na laki ng buffer para sa mga tinukoy na parameter. Inirerekomenda na gumamit ng buffer na hindi bababa sa minimum na ito upang maiwasan ang pagkawala ng data sa panahon ng pag-record sa ilalim ng mataas na system load.

Mga Pinakamahusay na Kasanayan sa Paggamit ng Mikropono

Pinakamahusay na kasanayan sa paggamit ng Microphone Permission ay naglalayong pataasin ang tiwala ng user at pagsunod sa mga kinakailangan ng platform.

Ipaliwanag ang Layunin Bago Mag-record

Bago humingi ng Microphone Permission, magpakita ng screen na nagpapaliwanag kung bakit kailangan ng app ang mikropono at kung paano gagamitin ang recording. Ipahiwatig kung ang audio ay ipinapadala sa server o pinoproseso nang lokal. Ang mga user ay mas malamang na pumayag sa access kung naiintindihan nila na ang recording ay hindi umaalis sa device. Lokal na pagproseso (on-device ASR) ay isang malakas na argumento para sa tiwala.

Itigil ang Pag-record sa Background

Kung ang app ay hindi nangangailangan ng background audio recording, siguraduhing itigil ang mikropono kapag lumipat sa background mode. Ito ay hindi lamang nakakatipid ng baterya ngunit pumipigil din sa negatibong reaksyon ng user na nakakakita ng recording indicator. Sa iOS, gamitin ang mga metodo ng UIApplicationDelegate applicationDidEnterBackground para i-pause ang recording. Sa Android, pangasiwaan ang onPause at onStop sa Activity o Service.

Gumamit ng Recording Indicator

Magpakita ng sarili mong recording indicator (animated microphone icon o wave) sa panahon ng audio capture. Ito ay nagpapaalam sa user na ang mikropono ay aktibo at nagbabawas ng panganib ng negatibong reaksyon. Apple at Google ay nagrerekomenda ng pagdoble ng system indicator gamit ang iyong sariling UI element para sa maximum na transparency.

Mga Madalas Itanong

Kailangan ba ang Microphone Permission para mag-play ng tunog?

Hindi, ang pahintulot ng mikropono ay kinakailangan lamang para sa pag-capture ng audio mula sa mikropono. Ang pag-play ng tunog sa pamamagitan ng speaker o headphone ay hindi nangangailangan ng Microphone Permission. Para sa pag-play, sapat na i-configure ang audio session sa iOS o AudioTrack sa Android.

Paano suriin ang status ng Microphone Permission sa Android?

Gamitin ang ContextCompat.checkSelfPermission(context, Manifest.permission.RECORD_AUDIO). Ang metodo ay nagbabalik ng PackageManager.PERMISSION_GRANTED o PERMISSION_DENIED. Karagdagan, suriin kung ang mikropono ay available sa device sa pamamagitan ng PackageManager.hasSystemFeature.

Ano ang gagawin kung tinanggihan ng user ang Microphone Permission?

Mag-alok ng alternatibong scenario: text input sa halip na boses, pagpapadala ng mensahe nang walang audio, panonood ng video nang walang tunog. Kung ang voice function ay kritikal, magpakita ng screen na may tagubilin para i-activate ang pahintulot sa system settings at button para mag-navigate.

Paano gumagana ang Microphone Permission sa Android 12+?

Mula Android 12, ang app sa background ay hindi maaaring maka-access sa mikropono. Ang aktibong pag-record ay sinuspinde kapag lumipat sa background mode. Bukod pa rito, lumitaw ang Privacy Chip indicator — isang berdeng icon sa status bar na nagpapakita na ang app ay gumagamit ng mikropono.

Bakit tinanggihan ng App Store ang app na may Microphone Permission?

Ang pinakakaraniwang dahilan: kawalan ng NSMicrophoneUsageDescription key, hindi tiyak na paglalarawan ng dahilan (“para sa pagpapabuti ng serbisyo” sa halip na “para sa pag-record ng voice message”), paghingi ng pahintulot nang walang malinaw na aksyon ng user o paggamit ng mikropono sa background nang walang makatuwirang functionality.

Buod

  • Microphone Permission ay system permission para sa audio capture, mandatory sa parehong mobile platform.
  • Android gumagamit ng RECORD_AUDIO na may runtime request at background access restriction mula Android 10.
  • iOS nangangailangan ng NSMicrophoneUsageDescription sa Info.plist at pagtawag sa AVAudioSession.requestRecordPermission na may mandatoryong paglalarawan ng dahilan.
  • System indicators (orange na tuldok sa iOS, Privacy Chip sa Android) ay nagpapaalam sa user tungkol sa aktibidad ng mikropono.
  • Mga scenario ng paggamit ay kinabibilangan ng voice message, speech recognition, video call, at audio recording.
  • Background recording ay mahigpit na limitado sa parehong platform at nangangailangan ng karagdagang pahintulot at pagbibigay-katwiran.
  • Alternatibong scenario sa pagtanggi (text input, pagpapadala nang walang audio) ay mandatory para sa tamang operasyon ng app.

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din