ventajas utilizadas son que mas herramientas google funciones cuales aplicaciones ios objective-c ios8 camera avfoundation

utilizadas - iOS: Solicitar acceso a la cámara



que es google drive y cuales son sus herramientas (2)

Tengo una aplicación con un escáner de códigos QR que funciona bien, pero en iOS 8 el acceso predeterminado a la cámara es "Denegado". Por lo tanto, tengo que ingresar a la configuración y darle acceso a la aplicación de forma manual para usar la cámara. ¿Cómo puedo hacer que el mensaje que dice algo así como "¿Desea darle acceso a esta aplicación para usar la cámara"?

Aquí hay una muestra de mi código que verifica los permisos de la cámara y luego solicita permiso si el usuario no los ha proporcionado. Sin embargo, el enlace para otorgar permisos nunca aparece y, finalmente, solo muestra UIAlertView. El estado de hecho es DENEGADO cuando pruebo, entonces ¿hay alguna razón por la cual no está pidiendo permisos? ¡Gracias!

También tengo #import AVFoundation / AVFoundation.h, así que ese no es el problema.

-(void) checkCameraAuthorization { AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo]; if(status == AVAuthorizationStatusAuthorized) { // authorized NSLog(@"camera authorized"); } else if(status == AVAuthorizationStatusDenied){ // denied if ([AVCaptureDevice respondsToSelector:@selector(requestAccessForMediaType: completionHandler:)]) { [AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) { // Will get here on both iOS 7 & 8 even though camera permissions weren''t required // until iOS 8. So for iOS 7 permission will always be granted. NSLog(@"DENIED"); if (granted) { // Permission has been granted. Use dispatch_async for any UI updating // code because this block may be executed in a thread. dispatch_async(dispatch_get_main_queue(), ^{ //[self doStuff]; }); } else { // Permission has been denied. UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Not Authorized" message:@"Please go to Settings and enable the camera for this app to use this feature." delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil]; [alert show]; } }]; } } else if(status == AVAuthorizationStatusRestricted){ // restricted UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Not Authorized" message:@"Please go to Settings and enable the camera for this app to use this feature." delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil]; [alert show]; } else if(status == AVAuthorizationStatusNotDetermined){ // not determined [AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) { if(granted){ // Access has been granted ..do something NSLog(@"camera authorized"); } else { // Access denied ..do something UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Not Authorized" message:@"Please go to Settings and enable the camera for this app to use this feature." delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil]; [alert show]; } }]; } }


Parece que a la aplicación ya se le ha denegado el acceso a la cámara. En este caso, no puede solicitar nuevamente. Solo puede solicitar al usuario acceso una vez por instalación. Después de eso, deberás dirigir al usuario a la configuración.

Envíe al usuario a su configuración donde la cámara se puede habilitar con esto (en iOS8):

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];

Si está realizando pruebas, intente eliminar la aplicación del teléfono y luego instálela y vuelva a ejecutarla. Esto lo devuelve al estado AVAuthorizationStatusNotDeterminado.