Microphone Permission : essence, types d'accès et principe de fonctionnement

Auteur : IT Sectr Publié le : 2026-05-21 Temps de lecture : 8 min

Microphone Permission est une autorisation système nécessaire à une application pour accéder au microphone de l'appareil. Elle est requise pour l'enregistrement audio, les messages vocaux, les appels vidéo et la reconnaissance vocale. Selon la Apple Developer Documentation, 2024, toutes les applications utilisant la capture audio sont tenues de demander le consentement explicite de l'utilisateur via une boîte de dialogue système.

Points clés

  • Microphone Permission est une autorisation obligatoire pour toute application qui enregistre de l'audio sur un appareil mobile.
  • Android utilise Manifest.permission.RECORD_AUDIO avec une demande à l'exécution à partir de l'API 23.
  • iOS nécessite la clé NSMicrophoneUsageDescription dans Info.plist et l'appel de AVAudioSession.requestRecordPermission.
  • La demande au moment de l'activation du microphone (bouton « Enregistrer un message vocal ») augmente les chances d'approbation.
  • Le travail en arrière-plan avec le microphone nécessite des autorisations supplémentaires et une justification stricte.

Qu'est-ce que Microphone Permission

Microphone Permission est un mécanisme de protection de la vie privée qui empêche l'enregistrement audio non autorisé depuis le microphone de l'appareil. Les plateformes mobiles considèrent le microphone comme l'une des ressources les plus sensibles, car l'enregistrement audio peut capturer des conversations personnelles, l'environnement environnant et des informations confidentielles.

Android classe RECORD_AUDIO comme une autorisation dangereuse, et iOS exige l'ajout obligatoire de la clé NSMicrophoneUsageDescription dans Info.plist. Sur les deux plateformes, la demande est effectuée à l'exécution et l'utilisateur peut révoquer l'autorisation à tout moment via les paramètres système. L'indicateur système d'enregistrement (point orange sur iOS, indicateur vert sur Android 12+) signale à l'utilisateur que l'application utilise le microphone à ce moment.

Selon une étude du Pew Research Center (2024), 54 % des utilisateurs d'appareils mobiles ont refusé l'accès au microphone à une application au moins une fois. La raison principale est de ne pas comprendre pourquoi l'application a besoin d'enregistrer de l'audio. Par conséquent, le développeur doit expliquer l'objectif de l'utilisation du microphone de la manière la plus transparente possible.

Autorisation du microphone sur Android

L'autorisation du microphone sur Android est demandée en déclarant RECORD_AUDIO dans le manifeste et en effectuant une demande à l'exécution dans le code de l'application. À partir d'Android 10, l'accès au microphone est en outre réglementé par des restrictions pour les applications en arrière-plan.

Déclaration dans AndroidManifest.xml

La première étape consiste à déclarer l'autorisation RECORD_AUDIO dans le fichier manifeste. Sans cette déclaration, la demande à l'exécution n'aura aucun effet et l'application ne pourra pas accéder au microphone.

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

CAPTURE_AUDIO_OUTPUT est une autorisation système non disponible pour les applications tierces. Elle est utilisée uniquement par les applications système pour capturer la sortie audio. Les applications normales n'ont besoin que de RECORD_AUDIO pour enregistrer avec le microphone.

Demande à l'exécution en Kotlin

Après la déclaration dans le manifeste, vous devez effectuer une demande à l'exécution. Considérons un exemple utilisant AudioRecord pour enregistrer l'audio depuis le microphone.

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()
    // Enregistrement des données audio dans le tampon
}

Gestion de l'état d'enregistrement

Il est important de gérer correctement le cycle de vie de l'enregistrement audio. Lorsque l'application passe en arrière-plan sur Android 9 et supérieur, l'enregistrement du microphone peut être mis en pause par le système. À partir d'Android 10, l'accès au microphone en arrière-plan est en outre restreint : une application en arrière-plan ne peut pas démarrer l'enregistrement et l'enregistrement actif est mis en pause. L'enregistrement en arrière-plan nécessite MediaProjection ou un Service avec notification.

Autorisation du microphone sur iOS

L'autorisation du microphone sur iOS est configurée via la clé NSMicrophoneUsageDescription dans Info.plist et l'appel de la méthode AVAudioSession.requestRecordPermission. Apple exige une explication obligatoire de la raison d'utilisation du microphone dans la boîte de dialogue de demande.

Configuration d'Info.plist

La clé NSMicrophoneUsageDescription est obligatoire pour toute application qui demande l'accès au microphone. Sans elle, l'application plantera lors de la tentative d'enregistrement audio.

xml
<key>NSMicrophoneUsageDescription</key>
<string>L'application a besoin d'accéder au microphone pour enregistrer des notes vocales et envoyer des messages audio.</string>

Demande en Swift

La demande d'accès au microphone sur iOS s'effectue via AVAudioSession. Après avoir reçu la réponse, l'application configure la session audio et commence l'enregistrement.

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

Indicateur d'enregistrement

Sous iOS 14 et supérieur, une application utilisant le microphone affiche un indicateur orange dans la barre d'état. L'utilisateur peut voir quelle application enregistre actuellement de l'audio. Si l'application utilise le microphone en arrière-plan sans raison valable, Apple peut rejeter la mise à jour. AVAudioSession permet de configurer la catégorie et le mode de la session audio, déterminant le comportement de l'application lors du passage en arrière-plan.

Scénarios de capture audio

Les scénarios d'utilisation du microphone dans les applications mobiles sont variés : de l'enregistrement vocal simple au traitement complexe de flux audio en temps réel.

Messages vocaux et notes

Les applications de messagerie et de prise de notes utilisent le microphone pour enregistrer des messages vocaux. Dans ce cas, Microphone Permission est demandé lors de l'appui sur le bouton d'enregistrement. Après la fin de l'enregistrement, il est important d'arrêter la session audio pour que d'autres applications puissent utiliser le microphone. AVAudioSession sur iOS et AudioManager sur Android gèrent le focus audio.

Reconnaissance vocale

Les applications avec saisie vocale (recherche, dictée, assistants vocaux) utilisent le microphone en conjonction avec des API de reconnaissance vocale. Sur Android, il s'agit de SpeechRecognizer d'android.speech, sur iOS — SFSpeechRecognizer du framework Speech. La reconnaissance vocale peut nécessiter une autorisation supplémentaire pour les services de reconnaissance (SPEECH sur Android, SFSpeechRecognizer.requestAuthorization sur iOS).

Appels vidéo et streaming

Les applications d'appels vidéo (WebRTC, Zoom, Telegram) demandent Microphone Permission en même temps que Camera Permission. Dans ce contexte, il est important de demander les deux autorisations séquentiellement, et non simultanément, pour ne pas submerger l'utilisateur de boîtes de dialogue. WebRTC utilise getUserMedia pour la capture audio et vidéo, mais sur les plateformes mobiles, les autorisations système sont d'abord requises.

Configuration de la session audio

Pour un enregistrement de qualité, vous devez configurer correctement les paramètres de la session audio. Sur iOS, la catégorie .playAndRecord permet de lire et d'enregistrer le son simultanément. Sur Android, le choix d'AudioSource.MIC assure la capture depuis le microphone principal, tandis qu'AudioSource.VOICE_COMMUNICATION optimise l'enregistrement pour la communication vocale. De plus, vous pouvez définir une fréquence d'échantillonnage de 44100 Hz et un format PCM 16 bits pour une qualité CD standard.

Gestion des interruptions d'enregistrement

Pendant l'enregistrement audio, des interruptions système peuvent survenir : appel entrant, déclenchement d'alarme, notification d'une autre application. Sur iOS, AVAudioSessionDelegate gère beginInterruption et endInterruption. Sur Android, AudioManager.OnAudioFocusChangeListener notifie l'application de la perte ou du retour du focus audio. Une gestion correcte des interruptions permet de sauvegarder l'enregistrement lors d'événements inattendus et d'éviter la perte de données. Il est recommandé de mettre en pause l'enregistrement lors de la perte de focus et de le reprendre après son retour avec une notification à l'utilisateur.

Optimisation de la capture audio

L'optimisation de la capture audio comprend la configuration de la fréquence d'échantillonnage, de la taille du tampon et du format d'encodage. Pour les messages vocaux, une fréquence de 44100 Hz et un canal mono sont suffisants. Pour la reconnaissance vocale, une fréquence de 16000 Hz peut être nécessaire.

Sur iOS, utilisez AVAudioSession.setPreferredIOBufferDuration pour configurer la latence d'enregistrement. Un tampon plus petit réduit la latence mais augmente la charge du processeur. Sur Android, AudioRecord.getMinBufferSize renvoie la taille minimale du tampon pour les paramètres donnés. Il est recommandé d'utiliser un tampon au moins égal à ce minimum pour éviter la perte de données lors de l'enregistrement sous charge système élevée.

Bonnes pratiques avec le microphone

Les bonnes pratiques pour Microphone Permission visent à accroître la confiance de l'utilisateur et à respecter les exigences des plateformes.

Expliquez l'objectif avant l'enregistrement

Avant de demander Microphone Permission, affichez un écran expliquant pourquoi l'application a besoin du microphone et comment l'enregistrement sera utilisé. Indiquez si l'audio est transmis au serveur ou traité localement. Les utilisateurs sont nettement plus susceptibles d'accorder l'accès s'ils comprennent que l'enregistrement ne quitte pas l'appareil. Le traitement local (ASR sur l'appareil) est un argument fort pour la confiance.

Arrêtez l'enregistrement en arrière-plan

Si l'application ne nécessite pas d'enregistrement audio en arrière-plan, assurez-vous d'arrêter le microphone lors du passage en arrière-plan. Cela permet non seulement d'économiser la batterie, mais aussi d'éviter une réaction négative de l'utilisateur voyant l'indicateur d'enregistrement. Sur iOS, utilisez les méthodes de UIApplicationDelegate applicationDidEnterBackground pour mettre en pause l'enregistrement. Sur Android, gérez onPause et onStop dans l'Activity ou le Service.

Utilisez des indicateurs d'enregistrement

Affichez votre propre indicateur d'enregistrement (icône de microphone animée ou forme d'onde) pendant la capture audio. Cela informe l'utilisateur que le microphone est actif et réduit le risque de réaction négative. Apple et Google recommandent de dupliquer l'indicateur système avec votre propre élément d'interface utilisateur pour une transparence maximale.

Questions fréquentes

Microphone Permission est-il nécessaire pour la lecture audio ?

Non, l'autorisation du microphone n'est requise que pour la capture audio depuis le microphone. La lecture du son via le haut-parleur ou les écouteurs ne nécessite pas Microphone Permission. Pour la lecture, il suffit de configurer la session audio sur iOS ou AudioTrack sur Android.

Comment vérifier le statut de Microphone Permission sur Android ?

Utilisez ContextCompat.checkSelfPermission(context, Manifest.permission.RECORD_AUDIO). La méthode retourne PackageManager.PERMISSION_GRANTED ou PERMISSION_DENIED. Vérifiez également si le microphone est disponible sur l'appareil via PackageManager.hasSystemFeature.

Que faire si l'utilisateur a refusé Microphone Permission ?

Proposez un scénario alternatif : saisie textuelle au lieu de la voix, envoi d'un message sans audio, visionnage d'une vidéo sans son. Si la fonction de saisie vocale est critique, affichez un écran avec des instructions sur la façon d'activer l'autorisation dans les paramètres système et un bouton pour y accéder.

Comment fonctionne Microphone Permission sur Android 12+ ?

À partir d'Android 12, une application en arrière-plan ne peut pas accéder au microphone. L'enregistrement actif est mis en pause lors du passage en arrière-plan. De plus, l'indicateur Privacy Chip est apparu — une icône verte dans la barre d'état montrant qu'une application utilise le microphone.

Pourquoi l'App Store a-t-elle rejeté une application avec Microphone Permission ?

Les raisons les plus courantes : absence de la clé NSMicrophoneUsageDescription, description non spécifique de la raison (« pour améliorer le service » au lieu de « pour enregistrer des messages vocaux »), demande d'autorisation sans action explicite de l'utilisateur, ou utilisation du microphone en arrière-plan sans fonctionnalité justifiée.

Résumé

  • Microphone Permission est une autorisation système pour la capture audio, obligatoire sur les deux plateformes mobiles.
  • Android utilise RECORD_AUDIO avec demande à l'exécution et restrictions d'accès en arrière-plan à partir d'Android 10.
  • iOS nécessite NSMicrophoneUsageDescription dans Info.plist et l'appel de AVAudioSession.requestRecordPermission avec une description obligatoire de la raison.
  • Les indicateurs système (point orange sur iOS, Privacy Chip sur Android) informent l'utilisateur de l'activité du microphone.
  • Les scénarios d'utilisation incluent les messages vocaux, la reconnaissance vocale, les appels vidéo et l'enregistrement audio.
  • L'enregistrement en arrière-plan est strictement restreint sur les deux plateformes et nécessite des autorisations supplémentaires et une justification.
  • Les scénarios alternatifs en cas de refus (saisie textuelle, envoi sans audio) sont obligatoires pour le bon fonctionnement de l'application.

Nous développerons une application mobile clé en main

IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.

Discuter du projet

Lisez aussi