2013-09-23 7 views
13

С момента обновления iOS 7 произошли некоторые изменения в приложениях записи. У меня есть приложение, которое использовалось для работы с iOS 5 и 6, но когда я попытался запустить его на iOS 7, запись не ответила.requestRecordPermission ничего не делает

Я проверил Интернет и увидел, что есть новый метод, который нужно назвать. Я попытался поместить этот код в viewDidAppear:

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) { 
    if([[AVAudioSession sharedInstance] respondsToSelector:@selector(requestRecordPermission:)]) 
    { 
     [[AVAudioSession sharedInstance] requestRecordPermission:^(BOOL granted) { 
      NSLog(@"permission : %d", granted); 
     }]; 
    } 
} 

«получил» всегда 1, хотя я не предоставлял никакого разрешения ни видел любой запрос всплывающего окна.

Btw Я пытаюсь справиться с этим, используя xcode 4.6.3. Я сделал категорию для AVAudioSession с методом requestRecordPermission, так как этот метод доступен только в iOS 7.

Спасибо.

+0

Я думаю, что ответ Йогеша Махешвари правилен и должен быть установлен как ответ. –

ответ

25

Я столкнулся с той же проблемой при тестировании на симуляторе iOS7, похоже, что запросRecordPermission не работает в симуляторе, и «предоставленный» всегда возвращается YES. Вы должны протестировать его на реальном устройстве.

Если вы протестировали его один раз на устройстве и ответили на всплывающее окно с разрешением, то всплывающее окно разрешения не будет появляться снова до тех пор, пока не будет выполнена смена адреса &.

Для сброса Расположение & конфиденциальности выполните следующие действия

Go to Settings -> General -> Reset -> Reset Location & Privacy and then press "Reset Warnings" when asked. 
10

После того, как вы предоставили разрешение на аудио для приложения. В вашем приложении снова не появится запрос на подтверждение.

Если вы хотите протестировать его, измените идентификатор связки вашего приложения & попробуйте.

2

же для IOS 8 Simulator. AVAudioSession.sharedInstance().requestRecordPermission всегда возвращает true.On другой стороны, когда вы звоните

UIApplication.sharedApplication().openURL(NSURL(string: UIApplicationOpenSettingsURLString)!) 

открыть настройки приложения на тренажере, микрофон никогда не перечислены there.That должны быть проверены на реальном устройстве.

1

Добавить Privacy - Использование микрофона Описание в вашем информационном plist, чтобы предоставить доступ для приложения, чтобы запросить разрешения. Это вызвало ошибку Thread13: сигнал SIGABRT. После этого ошибка будет решена автоматически.

+0

Попробуйте показать код для вашего предложения, чтобы обеспечить более качественный ответ. – yivi

Смежные вопросы