Microphone Permission: essentie, toegangstypes en werkingsprincipe

Auteur: IT Sectr Gepubliceerd: 2026-05-21 Leestijd: 8 min

Microphone Permission — dit is een systeemtoestemming die een app nodig heeft om toegang te krijgen tot de microfoon van het apparaat. Het is vereist voor het opnemen van audio, spraakberichten, videogesprekken en spraakherkenning. Volgens Apple Developer Documentation, 2024 zijn alle apps die audiocapture gebruiken verplicht om expliciete toestemming van de gebruiker te vragen via een systeemdialoogvenster.

Belangrijkste punten

  • Microphone Permission is een verplichte toestemming voor elke app die audio opneemt op een mobiel apparaat.
  • Android gebruikt Manifest.permission.RECORD_AUDIO met een runtime-verzoek vanaf API 23.
  • iOS vereist de sleutel NSMicrophoneUsageDescription in Info.plist en het aanroepen van AVAudioSession.requestRecordPermission.
  • Verzoek op het moment van activeren van de microfoon (knop „Spraakbericht opnemen“) verhoogt de kans op goedkeuring.
  • Werken op de achtergrond met de microfoon vereist extra toestemmingen en strikte rechtvaardiging.

Essentie van Microphone Permission

Microphone Permission is een privacybeschermingsmechanisme dat ongeautoriseerde audio-opname van de microfoon van het apparaat voorkomt. Mobiele platforms classificeren de microfoon als een van de meest gevoelige bronnen, omdat geluidsopname privégesprekken, de omgeving en vertrouwelijke informatie kan vastleggen.

Android classificeert RECORD_AUDIO als een gevaarlijke toestemming en iOS vereist het verplicht toevoegen van de sleutel NSMicrophoneUsageDescription in Info.plist. Op beide platforms wordt het verzoek uitgevoerd tijdens runtime en kan de gebruiker op elk moment de toestemming intrekken via de systeeminstellingen. De systeemindicator voor opname (oranje stip op iOS, groene indicator op Android 12+) geeft de gebruiker aan dat de app op dat moment de microfoon gebruikt.

Volgens een onderzoek van Pew Research Center (2024) heeft 54% van de mobiele gebruikers minstens één keer de toegang tot de microfoon aan een app geweigerd. De belangrijkste reden is het niet begrijpen waarom de app audio-opname nodig heeft. Daarom moet de ontwikkelaar het doel van het gebruik van de microfoon zo transparant mogelijk uitleggen.

Microfoontoestemming op Android

Microfoontoestemming op Android wordt aangevraagd door RECORD_AUDIO in het manifest te declareren en een runtime-verzoek in de app-code uit te voeren. Vanaf Android 10 wordt de toegang tot de microfoon aanvullend gereguleerd door beperkingen voor achtergrond-apps.

Declaratie in AndroidManifest.xml

De eerste stap is het declareren van de RECORD_AUDIO-toestemming in het manifestbestand. Zonder deze declaratie heeft het runtime-verzoek geen effect en krijgt de app geen toegang tot de microfoon.

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

CAPTURE_AUDIO_OUTPUT is een systeemtoestemming die niet beschikbaar is voor apps van derden. Het wordt alleen gebruikt door systeem-apps voor het vastleggen van audio-uitvoer. Gewone apps hebben alleen RECORD_AUDIO nodig voor opname van de microfoon.

Runtime-verzoek in Kotlin

Na declaratie in het manifest moet het runtime-verzoek worden uitgevoerd. Laten we een voorbeeld bekijken van het gebruik van AudioRecord voor het opnemen van audio van de microfoon.

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()
    // Audiogegevens naar buffer schrijven
}

Afhandeling van de opnamestatus

Het is belangrijk om de levenscyclus van audio-opname correct af te handelen. Wanneer de app overschakelt naar de achtergrondmodus op Android 9 en hoger, kan de opname van de microfoon door het systeem worden onderbroken. Vanaf Android 10 is achtergrondtoegang tot de microfoon verder beperkt: een app op de achtergrond kan geen opname starten en actieve opname wordt onderbroken. Voor achtergrondopname is MediaProjection of een Service met melding vereist.

Microfoontoestemming op iOS

Microfoontoestemming op iOS wordt geconfigureerd via de sleutel NSMicrophoneUsageDescription in Info.plist en het aanroepen van de methode AVAudioSession.requestRecordPermission. Apple vereist het verplicht vermelden van de reden voor microfoongebruik in het aanvraagdialoogvenster.

Configuratie van Info.plist

De sleutel NSMicrophoneUsageDescription is verplicht voor elke app die toegang tot de microfoon aanvraagt. Zonder deze sleutel zal de app crashen bij een poging tot audio-opname.

xml
<key>NSMicrophoneUsageDescription</key>
<string>De app heeft toegang tot de microfoon nodig voor het opnemen van spraaknotities en het verzenden van audiobestanden.</string>

Verzoek in Swift

Het verzoek om toegang tot de microfoon op iOS wordt uitgevoerd via AVAudioSession. Nadat het antwoord is ontvangen, configureert de app de audiosessie en start de opname.

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

Opname-indicator

Op iOS 14 en hoger toont een app die de microfoon gebruikt een oranje indicator in de statusbalk. De gebruiker ziet welke app op dat moment audio opneemt. Als de app zonder geldige reden op de achtergrond de microfoon gebruikt, kan Apple de update afwijzen. AVAudioSession maakt het mogelijk om de categorie en modus van de audiosessie te configureren, waarmee het gedrag van de app bij het overschakelen naar de achtergrondmodus wordt bepaald.

Scenario’s voor audiocapture

Gebruiksscenario’s van de microfoon in mobiele apps zijn divers: van eenvoudige spraakopname tot complexe real-time verwerking van audiostromen.

Spraakberichten en notities

Messengers en notitie-apps gebruiken de microfoon voor het opnemen van spraakberichten. In dit geval wordt Microphone Permission aangevraagd wanneer op de opnameknop wordt gedrukt. Na het beëindigen van de opname is het belangrijk om de audiosessie te stoppen, zodat andere apps de microfoon kunnen gebruiken. AVAudioSession op iOS en AudioManager op Android beheren de audiofocus.

Spraakherkenning

Apps met spraakinvoer (zoeken, dicteren, spraakassistenten) gebruiken de microfoon in combinatie met spraakherkennings-API’s. Op Android is dit SpeechRecognizer uit android.speech, op iOS — SFSpeechRecognizer uit het Speech framework. Voor spraakherkenning kan extra toestemming voor toegang tot herkenningsdiensten nodig zijn (SPEECH op Android, SFSpeechRecognizer.requestAuthorization op iOS).

Videogesprekken en streaming

Apps voor videogesprekken (WebRTC, Zoom, Telegram) vragen Microphone Permission tegelijkertijd met Camera Permission aan. In deze context is het belangrijk om beide toestemmingen opeenvolgend aan te vragen, niet tegelijkertijd, om de gebruiker niet te overladen met dialoogvensters. WebRTC gebruikt getUserMedia voor het vastleggen van audio en video, maar op mobiele platforms zijn eerst systeemtoestemmingen vereist.

Configuratie van de audiosessie

Voor hoogwaardige opname is het correct configureren van de audiosessieparameters vereist. Op iOS maakt de categorie .playAndRecord gelijktijdig afspelen en opnemen van geluid mogelijk. Op Android zorgt de keuze AudioSource.MIC voor capture van de hoofdmicrofoon en optimaliseert AudioSource.VOICE_COMMUNICATION de opname voor spraakcommunicatie. Aanvullend kan de bemonsteringsfrequentie 44100 Hz en PCM 16-bits formaat worden geconfigureerd om standaard CD-kwaliteit te bereiken.

Afhandeling van opname-onderbrekingen

Tijdens audio-opname kunnen systeemonderbrekingen optreden: inkomend gesprek, alarm, melding van een andere app. Op iOS handelt AVAudioSessionDelegate beginInterruption en endInterruption af. Op Android informeert AudioManager.OnAudioFocusChangeListener de app over verlies of terugkeer van audiofocus. Correcte afhandeling van onderbrekingen maakt het mogelijk om de opname te behouden bij onverwachte gebeurtenissen en gegevensverlies te voorkomen. Het wordt aanbevolen om de opname te pauzeren bij focusverlies en te hervatten na terugkeer met melding aan de gebruiker.

Optimalisatie van audiocapture

Optimalisatie van audiocapture omvat het configureren van de bemonsteringsfrequentie, buffergrootte en coderingsformaat. Voor spraakberichten is een frequentie van 44100 Hz en een monokanaal voldoende. Voor spraakherkenning kan een frequentie van 16000 Hz nodig zijn.

Op iOS gebruikt u AVAudioSession.setPreferredIOBufferDuration voor het configureren van de opnamevertraging. Een kleinere buffer vermindert de vertraging, maar verhoogt de CPU-belasting. Op Android retourneert AudioRecord.getMinBufferSize de minimale buffergrootte voor de opgegeven parameters. Het wordt aanbevolen om een buffer te gebruiken die niet kleiner is dan dit minimum om gegevensverlies tijdens opname onder hoge systeembelasting te voorkomen.

Beste praktijken voor werken met de microfoon

Beste praktijken voor werken met Microphone Permission zijn gericht op het vergroten van het gebruikersvertrouwen en naleving van platformvereisten.

Leg het doel uit vóór de opname

Voordat u Microphone Permission aanvraagt, toon een scherm waarop u uitlegt waarom de app de microfoon nodig heeft en hoe de opname wordt gebruikt. Geef aan of de audio naar de server wordt verzonden of lokaal wordt verwerkt. Gebruikers geven veel vaker toestemming als ze begrijpen dat de opname het apparaat niet verlaat. Lokale verwerking (on-device ASR) is een sterk argument voor vertrouwen.

Stop de opname op de achtergrond

Als de app geen achtergrondaudio-opname vereist, stop dan de microfoon bij het overschakelen naar de achtergrondmodus. Dit bespaart niet alleen batterij, maar voorkomt ook negatieve reacties van de gebruiker die de opname-indicator ziet. Op iOS gebruikt u de UIApplicationDelegate-methoden applicationDidEnterBackground om de opname te pauzeren. Op Android handelt u onPause en onStop af in Activity of Service.

Gebruik opname-indicatoren

Toon uw eigen opname-indicator (geanimeerd microfoonpictogram of golf) tijdens audiocapture. Dit informeert de gebruiker dat de microfoon actief is en vermindert het risico op negatieve reacties. Apple en Google raden aan om de systeemindicator te dupliceren met uw eigen UI-element voor maximale transparantie.

Veelgestelde vragen

Is Microphone Permission nodig voor het afspelen van geluid?

Nee, microfoontoestemming is alleen nodig voor het vastleggen van audio van de microfoon. Het afspelen van geluid via de luidspreker of koptelefoon vereist geen Microphone Permission. Voor afspelen is het voldoende om de audiosessie op iOS of AudioTrack op Android te configureren.

Hoe controleer ik de status van Microphone Permission op Android?

Gebruik ContextCompat.checkSelfPermission(context, Manifest.permission.RECORD_AUDIO). De methode retourneert PackageManager.PERMISSION_GRANTED of PERMISSION_DENIED. Controleer aanvullend of de microfoon beschikbaar is op het apparaat via PackageManager.hasSystemFeature.

Wat te doen als de gebruiker Microphone Permission heeft geweigerd?

Bied een alternatief scenario aan: tekstinvoer in plaats van spraak, bericht verzenden zonder audio, video bekijken zonder geluid. Als de spraakfunctie kritiek is, toon dan een scherm met instructies voor het inschakelen van de toestemming in de systeeminstellingen en een navigatieknop.

Hoe werkt Microphone Permission op Android 12+?

Vanaf Android 12 kan een app op de achtergrond geen toegang krijgen tot de microfoon. Actieve opname wordt onderbroken bij het overschakelen naar de achtergrondmodus. Daarnaast is de Privacy Chip-indicator verschenen — een groen pictogram in de statusbalk dat aangeeft dat de app de microfoon gebruikt.

Waarom heeft App Store de app met Microphone Permission afgewezen?

De meest voorkomende redenen: ontbreken van de sleutel NSMicrophoneUsageDescription, niet-specifieke redenbeschrijving („voor het verbeteren van de dienst“ in plaats van „voor het opnemen van spraakberichten“), aanvragen van toestemming zonder duidelijke gebruikersactie of gebruik van de microfoon op de achtergrond zonder gerechtvaardigde functionaliteit.

Samenvatting

  • Microphone Permission is een systeemtoestemming voor audiocapture, verplicht op beide mobiele platforms.
  • Android gebruikt RECORD_AUDIO met een runtime-verzoek en beperking van achtergrondtoegang vanaf Android 10.
  • iOS vereist NSMicrophoneUsageDescription in Info.plist en het aanroepen van AVAudioSession.requestRecordPermission met een verplichte redenbeschrijving.
  • Systeemindicatoren (oranje stip op iOS, Privacy Chip op Android) informeren de gebruiker over microfoonactiviteit.
  • Gebruiksscenario’s omvatten spraakberichten, spraakherkenning, videogesprekken en audio-opname.
  • Achtergrondopname is strikt beperkt op beide platforms en vereist extra toestemmingen en rechtvaardiging.
  • Alternatieve scenario’s bij weigering (tekstinvoer, verzenden zonder audio) zijn verplicht voor de correcte werking van de app.

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project

Lees ook