Microphone Permission: esencia, tipos de acceso y principio de funcionamiento

Autor: IT Sectr Publicado: 2026-05-21 Tiempo de lectura: 8 min

Microphone Permission es un permiso del sistema necesario para que una aplicación acceda al micrófono del dispositivo. Se requiere para grabar audio, mensajes de voz, videollamadas y reconocimiento de voz. Según Apple Developer Documentation, 2024, todas las aplicaciones que utilizan captura de audio deben solicitar el consentimiento explícito del usuario a través de un diálogo del sistema.

Puntos clave

  • Microphone Permission es un permiso obligatorio para cualquier aplicación que grabe audio en un dispositivo móvil.
  • Android usa Manifest.permission.RECORD_AUDIO con una solicitud en tiempo de ejecución desde API 23.
  • iOS requiere la clave NSMicrophoneUsageDescription en Info.plist y llamar a AVAudioSession.requestRecordPermission.
  • Solicitar en el momento de activación del micrófono (botón “Grabar mensaje de voz”) aumenta las posibilidades de aprobación.
  • Trabajar en segundo plano con el micrófono requiere permisos adicionales y una justificación sólida.

Qué es Microphone Permission

Microphone Permission es un mecanismo de protección de privacidad que evita la grabación de audio no autorizada desde el micrófono del dispositivo. Las plataformas móviles consideran el micrófono como uno de los recursos más sensibles porque la grabación de audio puede capturar conversaciones personales, el entorno circundante e información confidencial.

Android clasifica RECORD_AUDIO como un permiso peligroso, e iOS requiere la adición obligatoria de la clave NSMicrophoneUsageDescription en Info.plist. En ambas plataformas, la solicitud se realiza en tiempo de ejecución y el usuario puede revocar el permiso en cualquier momento a través de la configuración del sistema. El indicador del sistema de grabación (punto naranja en iOS, indicador verde en Android 12+) señala al usuario que la aplicación está usando el micrófono en ese momento.

Según un estudio de Pew Research Center (2024), el 54% de los usuarios de dispositivos móviles han denegado el acceso al micrófono a una aplicación al menos una vez. La razón principal es no comprender por qué la aplicación necesita grabar audio. Por lo tanto, el desarrollador debe explicar el propósito del uso del micrófono de la manera más transparente posible.

Permiso de micrófono en Android

El permiso de micrófono en Android se solicita declarando RECORD_AUDIO en el manifiesto y realizando una solicitud en tiempo de ejecución en el código de la aplicación. Desde Android 10, el acceso al micrófono está adicionalmente regulado por restricciones para aplicaciones en segundo plano.

Declaración en AndroidManifest.xml

El primer paso es declarar el permiso RECORD_AUDIO en el archivo de manifiesto. Sin esta declaración, la solicitud en tiempo de ejecución no tendrá efecto y la aplicación no podrá acceder al micrófono.

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

CAPTURE_AUDIO_OUTPUT es un permiso del sistema no disponible para aplicaciones de terceros. Solo lo usan las aplicaciones del sistema para capturar la salida de audio. Las aplicaciones normales solo necesitan RECORD_AUDIO para grabar con el micrófono.

Solicitud en tiempo de ejecución en Kotlin

Después de declarar en el manifiesto, debe realizar una solicitud en tiempo de ejecución. Considere un ejemplo usando AudioRecord para grabar audio desde el micrófono.

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()
    // Grabando datos de audio en el búfer
}

Manejo del estado de grabación

Es importante manejar correctamente el ciclo de vida de la grabación de audio. Cuando la aplicación pasa a segundo plano en Android 9 y superior, la grabación del micrófono puede ser pausada por el sistema. Desde Android 10, el acceso al micrófono en segundo plano está adicionalmente restringido: una aplicación en segundo plano no puede iniciar la grabación y la grabación activa se pausa. La grabación en segundo plano requiere MediaProjection o un Service con notificación.

Permiso de micrófono en iOS

El permiso de micrófono en iOS se configura mediante la clave NSMicrophoneUsageDescription en Info.plist y llamando al método AVAudioSession.requestRecordPermission. Apple requiere una explicación obligatoria del motivo del uso del micrófono en el diálogo de solicitud.

Configuración de Info.plist

La clave NSMicrophoneUsageDescription es obligatoria para cualquier aplicación que solicite acceso al micrófono. Sin ella, la aplicación fallará al intentar grabar audio.

xml
<key>NSMicrophoneUsageDescription</key>
<string>La aplicación necesita acceso al micrófono para grabar notas de voz y enviar mensajes de audio.</string>

Solicitud en Swift

La solicitud de acceso al micrófono en iOS se realiza a través de AVAudioSession. Después de recibir la respuesta, la aplicación configura la sesión de audio y comienza a grabar.

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

Indicador de grabación

En iOS 14 y superior, una aplicación que usa el micrófono muestra un indicador naranja en la barra de estado. El usuario puede ver qué aplicación está grabando audio en ese momento. Si la aplicación usa el micrófono en segundo plano sin una razón válida, Apple puede rechazar la actualización. AVAudioSession permite configurar la categoría y el modo de la sesión de audio, determinando el comportamiento de la aplicación al pasar a segundo plano.

Escenarios de captura de audio

Los escenarios de uso del micrófono en aplicaciones móviles son diversos: desde la simple grabación de voz hasta el procesamiento complejo de flujos de audio en tiempo real.

Mensajes de voz y notas

Las aplicaciones de mensajería y toma de notas usan el micrófono para grabar mensajes de voz. En este caso, Microphone Permission se solicita al presionar el botón de grabación. Después de completar la grabación, es importante detener la sesión de audio para que otras aplicaciones puedan usar el micrófono. AVAudioSession en iOS y AudioManager en Android gestionan el foco de audio.

Reconocimiento de voz

Las aplicaciones con entrada de voz (búsqueda, dictado, asistentes de voz) usan el micrófono junto con APIs de reconocimiento de voz. En Android, es SpeechRecognizer de android.speech, en iOS — SFSpeechRecognizer del framework Speech. El reconocimiento de voz puede requerir un permiso adicional para los servicios de reconocimiento (SPEECH en Android, SFSpeechRecognizer.requestAuthorization en iOS).

Videollamadas y streaming

Las aplicaciones de videollamadas (WebRTC, Zoom, Telegram) solicitan Microphone Permission junto con Camera Permission. En este contexto, es importante solicitar ambos permisos de forma secuencial, no simultánea, para no abrumar al usuario con diálogos. WebRTC usa getUserMedia para capturar audio y video, pero en plataformas móviles se requieren primero los permisos del sistema.

Configuración de la sesión de audio

Para una grabación de calidad, debe configurar correctamente los parámetros de la sesión de audio. En iOS, la categoría .playAndRecord permite reproducir y grabar sonido simultáneamente. En Android, elegir AudioSource.MIC proporciona captura desde el micrófono principal, mientras que AudioSource.VOICE_COMMUNICATION optimiza la grabación para comunicación por voz. Además, puede configurar una frecuencia de muestreo de 44100 Hz y formato PCM de 16 bits para calidad de CD estándar.

Manejo de interrupciones de grabación

Durante la grabación de audio pueden ocurrir interrupciones del sistema: llamada entrante, activación de alarma, notificación de otra aplicación. En iOS, AVAudioSessionDelegate maneja beginInterruption y endInterruption. En Android, AudioManager.OnAudioFocusChangeListener notifica a la aplicación sobre la pérdida o recuperación del foco de audio. El manejo adecuado de interrupciones permite guardar la grabación durante eventos inesperados y evitar la pérdida de datos. Se recomienda pausar la grabación al perder el foco y reanudarla después de su recuperación con una notificación al usuario.

Optimización de captura de audio

La optimización de captura de audio incluye la configuración de la frecuencia de muestreo, el tamaño del búfer y el formato de codificación. Para mensajes de voz, una frecuencia de 44100 Hz y canal mono son suficientes. Para reconocimiento de voz, puede ser necesaria una frecuencia de 16000 Hz.

En iOS, use AVAudioSession.setPreferredIOBufferDuration para configurar la latencia de grabación. Un búfer más pequeño reduce la latencia pero aumenta la carga de la CPU. En Android, AudioRecord.getMinBufferSize devuelve el tamaño mínimo del búfer para los parámetros dados. Se recomienda usar un búfer no menor que este mínimo para evitar la pérdida de datos al grabar bajo alta carga del sistema.

Mejores prácticas con el micrófono

Las mejores prácticas para Microphone Permission están orientadas a aumentar la confianza del usuario y cumplir con los requisitos de las plataformas.

Explique el propósito antes de grabar

Antes de solicitar Microphone Permission, muestre una pantalla explicando por qué la aplicación necesita el micrófono y cómo se usará la grabación. Indique si el audio se transmite al servidor o se procesa localmente. Los usuarios son significativamente más propensos a conceder el acceso si entienden que la grabación no sale del dispositivo. El procesamiento local (ASR en el dispositivo) es un argumento sólido para la confianza.

Detenga la grabación en segundo plano

Si la aplicación no requiere grabación de audio en segundo plano, asegúrese de detener el micrófono al pasar a segundo plano. Esto no solo ahorra batería sino que también previene una reacción negativa del usuario al ver el indicador de grabación. En iOS, use los métodos de UIApplicationDelegate applicationDidEnterBackground para pausar la grabación. En Android, maneje onPause y onStop en Activity o Service.

Use indicadores de grabación

Muestre su propio indicador de grabación (icono de micrófono animado o forma de onda) durante la captura de audio. Esto informa al usuario que el micrófono está activo y reduce el riesgo de una reacción negativa. Apple y Google recomiendan duplicar el indicador del sistema con su propio elemento de UI para máxima transparencia.

Preguntas frecuentes

¿Se requiere Microphone Permission para reproducir audio?

No, el permiso de micrófono solo se requiere para la captura de audio desde el micrófono. Reproducir sonido a través del altavoz o auriculares no requiere Microphone Permission. Para la reproducción, basta con configurar la sesión de audio en iOS o AudioTrack en Android.

¿Cómo verificar el estado de Microphone Permission en Android?

Use ContextCompat.checkSelfPermission(context, Manifest.permission.RECORD_AUDIO). El método devuelve PackageManager.PERMISSION_GRANTED o PERMISSION_DENIED. Adicionalmente, verifique si el micrófono está disponible en el dispositivo mediante PackageManager.hasSystemFeature.

¿Qué hacer si el usuario denegó Microphone Permission?

Ofrezca un escenario alternativo: entrada de texto en lugar de voz, enviar un mensaje sin audio, ver un video sin sonido. Si la función de entrada de voz es crítica, muestre una pantalla con instrucciones sobre cómo habilitar el permiso en configuración del sistema y un botón para navegar allí.

¿Cómo funciona Microphone Permission en Android 12+?

Desde Android 12, una aplicación en segundo plano no puede acceder al micrófono. La grabación activa se pausa al pasar a segundo plano. Además, ha aparecido el indicador Privacy Chip — un icono verde en la barra de estado que muestra que una aplicación está usando el micrófono.

¿Por qué App Store rechazó una aplicación con Microphone Permission?

Las razones más comunes: falta de la clave NSMicrophoneUsageDescription, descripción no específica del motivo (“para mejorar el servicio” en lugar de “para grabar mensajes de voz”), solicitud de permiso sin una acción explícita del usuario, o uso del micrófono en segundo plano sin funcionalidad justificada.

Resumen

  • Microphone Permission es un permiso del sistema para captura de audio, obligatorio en ambas plataformas móviles.
  • Android usa RECORD_AUDIO con solicitud en tiempo de ejecución y restricciones de acceso en segundo plano desde Android 10.
  • iOS requiere NSMicrophoneUsageDescription en Info.plist y llamar a AVAudioSession.requestRecordPermission con una descripción obligatoria del motivo.
  • Indicadores del sistema (punto naranja en iOS, Privacy Chip en Android) informan al usuario sobre la actividad del micrófono.
  • Escenarios de uso incluyen mensajes de voz, reconocimiento de voz, videollamadas y grabación de audio.
  • Grabación en segundo plano está estrictamente restringida en ambas plataformas y requiere permisos adicionales y justificación.
  • Escenarios alternativos ante la denegación (entrada de texto, envío sin audio) son obligatorios para el correcto funcionamiento de la aplicación.

Desarrollaremos una aplicación móvil llave en mano

IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.

Discutir el proyecto

Lea también