Как узнать, что приложение имеет доступ к камере или нет программно в iOS8

В моем приложении используется камера. В iOS8 они включают новую настройку конфиденциальности, Camera, где пользователь может управлять использование прав на камеры для каждого приложения.

Проблема:
Если пользователь не разрешил моему приложению использовать камеру, то как я могу узнать, что У моего приложения нет доступа для камеры.
как я могу использовать ALAssetsLibrary authorizationStatus, чтобы узнать статус фотобиблиотеки или ABAddressBookGetAuthorizationStatus, чтобы узнать статус доступа к телефонной книге.

Вопрос:
Как я могу узнать, имеет ли мое приложение доступ камеры или нет в iOS8, так что я могу предложить пользователю разрешить доступ камеры для моего приложения?


У меня ниже экрана печати фотобумаги, которые имеют одинаковую проблему как мое приложение.

enter image description here

enter image description here

enter image description here


Если доступ к камере отсутствует, будет отображаться только черный экран. Нет сообщений.

Ответ 1

Проверьте AVAuthorizationStatus для обеспечения доступности камеры, а затем обработайте дела соответственно

AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
if(status == AVAuthorizationStatusAuthorized) {
  // authorized
} else if(status == AVAuthorizationStatusDenied){
  // denied
} else if(status == AVAuthorizationStatusRestricted){
  // restricted
} else if(status == AVAuthorizationStatusNotDetermined){
  // not determined
  [AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) {
    if(granted){
  NSLog(@"Granted access");
} else {
  NSLog(@"Not granted access");
}
  }];
}