Мне нужно создать пользовательский интерфейс для разрешения микрофона, есть ли способ сделать это.

Ниже приведен код кода, как работает блок разрешений .. кажется, что это сложно с этим вызовом? Приложение Shazam делает это.

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

Shazam Permission

2
shavik 15 Май 2014 в 11:17

2 ответа

Лучший ответ

Я не знаю, каким образом можно обойти UIAlertViews, представленный Apple, который запрашивает разрешения у пользователя. Однако вы можете сделать следующее:

  • Представьте представление, более подробно объясняющее, почему вам нужно конкретное разрешение. С двумя кнопками, как у Shazam. И скажите пользователю, что при нажатии «ОК» появится предупреждение для подтверждения.
  • Если пользователь нажимает ОК, инициируйте какое-либо действие (например, определение местоположения), которое требует разрешения пользователя, или используйте предоставленный системой способ запроса разрешения (например, микрофон).
  • Если пользователь нажимает «не разрешать», вы все равно можете в будущем снова представить интерфейс. С дополнительным объяснением.

Такой подход лучше, чем сразу использовать диалоговое окно разрешений системы, поскольку обычно это можно запретить только один раз из приложения. Использование настраиваемого представления перед представлением предупреждений позволяет чаще спрашивать.

Мы также опубликовали структуру, которая поможет вам в этом: https://github.com/iosphere/ISHPermissionKit

7
Felix Lamouroux 30 Июн 2014 в 17:24

Для iOS> = 7.0

В вашем app.plist добавьте этот ключ: NSMicrophoneUsageDescription и желаемое индивидуальное приглашение. Подробнее здесь: https://developer.apple.com/library/ios/documentation/general/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW1

1
TonyMkenu 15 Май 2014 в 12:01