puedo permitir microfono fotos fiables desarrolladores como camara apps activar acceso abrir ios objective-c swift microphone avaudiosession

permitir - iOS verifica si la aplicación tiene acceso al micrófono



permitir acceso a camara iphone (6)

Con la introducción de iOS 7, las aplicaciones deben solicitar acceso al micrófono cuando desean grabar audio.

¿Cómo compruebo si la aplicación tiene acceso al micrófono?
En el iOS 8 SDK puedo usar la enumeración AVAudioSessionRecordPermission , pero ¿cómo puedo verificar esto en iOS 7?

Información:
No quiero solicitar permiso, solo quiero comprobar si la aplicación tiene acceso al micrófono. (Me gusta el acceso a la ubicación):

if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied) { // Do something }


Como ninguna de las otras respuestas aquí se menciona aquí, debe agregar los permisos a su info.plist. Específicamente, agregue una entrada para:

Privacidad - Descripción del uso del micrófono

Para el valor de cadena, ingrese algo como: (nombre de la aplicación) necesita acceso a su micrófono.

De lo contrario, obtendrá un accidente misterioso


En iOS7 no hay forma de obtener el estado actual de la microphone authorization del microphone authorization . Han dado la enumeración en iOS8 como AVAudioSessionRecordPermission

En iOS7 tienes que solicitar permiso cada vez con

[[AVAudioSession sharedInstance] requestRecordPermission:^(BOOL granted) { if (granted) { NSLog(@"Permission granted"); } else { NSLog(@"Permission denied"); } }];

La misma pregunta se ha formulado anteriormente, pero no existe una api con la que se conozca el estado actual de iOS8

Puede consultar el permiso Comprobar el micrófono en iOS 7 sin mostrar el indicador

Solución:

Otra opción es que puede mostrar la popup o pedir permiso por primera vez y guardar los estados de la opción de usuario seleccionada en NSUserDefaults y, a partir de entonces, no pedir permiso. Desde los documentos, explícitamente no necesita llamar a esto si no necesita obtener el permiso del usuario. AVAudioSession primera vez que AVAudioSession lo llamará automáticamente cuando intente grabar

La grabación de audio requiere permiso explícito del usuario. La primera vez que la sesión de audio de su aplicación intenta utilizar una ruta de entrada de audio mientras usa una categoría que permite la grabación (consulte “Categorías de sesión de audio”), el sistema solicita automáticamente al usuario el permiso; alternativamente, puede llamar a requestRecordPermission: para avisar al usuario en el momento de su elección


Hay otra manera de intentar el siguiente código para ios 7 y 8:

let microPhoneStatus = AVCaptureDevice.authorizationStatusForMediaType(AVMediaTypeAudio) switch microPhoneStatus { case .Authorized: // Has access case .Denied: // No access granted case .Restricted: // Microphone disabled in settings case .NotDetermined: // Didn''t request access yet }


Puede verificar con recordPermission() , que está disponible desde iOS 8.

Tenga en cuenta que a partir de iOS 10, debe establecer la propiedad NSMicrophoneUsageDescription en su info.plist para los permisos de micrófono. Debe proporcionar un valor que se mostrará en la solicitud de acceso y, si está localizando su aplicación, asegúrese de incluir las cadenas de plist para la traducción.

De lo contrario, se producirá un bloqueo al intentar acceder al micrófono.

Esta respuesta se ha limpiado de nuevo para Swift 4.x

import AVFoundation switch AVAudioSession.sharedInstance().recordPermission { case AVAudioSessionRecordPermission.granted: print("Permission granted") case AVAudioSessionRecordPermission.denied: print("Pemission denied") case AVAudioSessionRecordPermission.undetermined: print("Request permission here") AVAudioSession.sharedInstance().requestRecordPermission({ (granted) in // Handle granted }) }

Swift 3.0

Esto se ha probado en un entorno iOS 10 para verificar el estado actual del micrófono.

import AVFoundation switch AVAudioSession.sharedInstance().recordPermission() { case AVAudioSessionRecordPermission.granted: print("Permission granted") case AVAudioSessionRecordPermission.denied: print("Pemission denied") case AVAudioSessionRecordPermission.undetermined: print("Request permission here") default: break }

C objetivo

He probado este código con iOS 8 para verificar el permiso del micrófono y obtener el estado actual.

switch ([[AVAudioSession sharedInstance] recordPermission]) { case AVAudioSessionRecordPermissionGranted: break; case AVAudioSessionRecordPermissionDenied: break; case AVAudioSessionRecordPermissionUndetermined: // This is the initial state before a user has made any choice // You can use this spot to request permission here if you want break; default: break; }

Como siempre, asegúrate de import AVFoundation .


Código de la solución completa de Swift 3

func checkMicPermission() -> Bool { var permissionCheck: Bool = false switch AVAudioSession.sharedInstance().recordPermission() { case AVAudioSessionRecordPermission.granted: permissionCheck = true case AVAudioSessionRecordPermission.denied: permissionCheck = false case AVAudioSessionRecordPermission.undetermined: AVAudioSession.sharedInstance().requestRecordPermission({ (granted) in if granted { permissionCheck = true } else { permissionCheck = false } }) default: break } return permissionCheck }


[[AVAudioSession sharedInstance] requestRecordPermission:^(BOOL granted) { if (granted) { // Microphone enabled code } else { // Microphone disabled code } }];

E incluye <AVFoundation/AVAudioSession.h>