я имел быстрый код камеры, который работал на КСН 8 и Xcode 6. я назвал AVCaptureDevice.authorizationStatusForMediaType (AVMediaTypeVideo), но мое приложение не отображается в Settings -> privacy -> Camera (но другие приложения отображаются) стремительные ИОС 9 приложение не в настройках
После обновления до ios 9 и xcode 7 Не удается получить разрешение на работу камеры. Я искал 2 дня в google и stackoverflow.
проблема
Я импортировал AVFoundation и называется AVCaptureDevice.authorizationStatusForMediaType (AVMediaTypeVideo) всегда получают AVAuthorizationStatus.Denied
- мое приложение не отображается в меню Настройки -> Приватность -> Camera
- Камера черного цвета
- requestAccessForMedia Тип не открывается всплывающее окно
- authorizationStatusForMediaType всегда Denied
Главная проблема состоит Нет 1. Я думаю, что если я могу получить мое приложение на Настройки -> Приватность -> Camera, то другие проблемы решены.
thigns Я попытался
- дочерний класс от UIImagePickerController
- Удалены и переустановил мое приложение
- Изменено Bundle ID
- Измененная дата iphone до 3 дней в будущем
- называется requestAccessForMediaType в основная резьба
- Xcode 7
- Ios 9.0 9.1
- Iphone 5, 5S, 6
- быстрое 2,1
мой код
override func viewDidLoad() {
super.viewDidLoad()
cameraView()
}
func checkCamera() {
let authStatus = AVCaptureDevice.authorizationStatusForMediaType(AVMediaTypeVideo)
switch authStatus {
case AVAuthorizationStatus.Authorized:
print("AVAuthorizationStatus.Authorized")
case AVAuthorizationStatus.Denied:
print("AVAuthorizationStatus.Denied")
case AVAuthorizationStatus.NotDetermined:
print("AVAuthorizationStatus.NotDetermined")
case AVAuthorizationStatus.Restricted:
print("AVAuthorizationStatus.Restricted")
default:
print("AVAuthorizationStatus.Default")
}
}
func cameraView(){
// session
let mySession : AVCaptureSession = AVCaptureSession()
var myDevice : AVCaptureDevice? //= AVCaptureDevice()
let myImageOutput : AVCaptureStillImageOutput = AVCaptureStillImageOutput()
let devices = AVCaptureDevice.devices()
let audioCaptureDevice = AVCaptureDevice.devicesWithMediaType(AVMediaTypeAudio)
let audioInput = (try! AVCaptureDeviceInput(device: audioCaptureDevice[0] as! AVCaptureDevice)) as AVCaptureInput
for device in devices {
if(device.position == AVCaptureDevicePosition.Back){
myDevice = device as? AVCaptureDevice
}
}
let status = AVCaptureDevice.authorizationStatusForMediaType(AVMediaTypeVideo)
print(status == AVAuthorizationStatus.Authorized)
print(status == AVAuthorizationStatus.Denied)
print(status == AVAuthorizationStatus.Restricted)
print(status.rawValue)
if status != AVAuthorizationStatus.Authorized {
AVCaptureDevice.requestAccessForMediaType(AVMediaTypeVideo, completionHandler: { (granted :Bool) -> Void in
if granted == false {
// Camera not Authorized
dispatch_async(dispatch_get_main_queue()) {
print("Camera not Authorized")
self.checkCamera()
return
}
}
});
}
Спасибо, что не пробовал. Я добавил код ниже в info.plist.Но до сих пор не появляется в заходящего ' NSCameraUsageDescription \t камеры \t NSPhotoLibraryUsageDescription \t Фотографии ' результат AVAuthorizationStatus.NotDetermined при старте уединенности. тогда, когда я спрашиваю разрешение с запросомAccessForMediaType результат AVAuthorizationStatus.Denied –
matar
Спасибо, что указал мне в правильном направлении. Это не сработало, когда я добавил эти ключи в свой проект. Итак, я создал новый проект и добавил эти ключи и скопировал файл info.plist в свой проект, и он сработал. – matar