Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

requestRecordPermission does nothing

Since the update of iOS 7 there has been some changes with recording applications. I have an app that used to work with iOS 5 and 6, but when I tried to run it on iOS 7 - recording didn't respond.

I checked the internet and saw there's a new method that needs to be called. I tried to place this code in viewDidAppear:

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

'granted' is always 1 although I didn't grant any permission nor saw any request popup.

Btw I'm trying to handle this using xcode 4.6.3. I made a category for AVAudioSession with requestRecordPermission method, since this method is available in iOS 7 only.

Thanks.

like image 988
Kevin Hury Avatar asked Sep 23 '13 11:09

Kevin Hury


1 Answers

I ran into the same problem while testing on iOS7 simulator, it looks like requestRecordPermission does not work in simulator and "granted" is always returned YES. You have to test it on a real device.

If you have tested it once on a device and responded to the permission popup then permission popup will not come again until a reset of location & privacy is done.

To reset Location & Privacy follow these steps

Go to Settings -> General -> Reset -> Reset Location & Privacy and then press "Reset Warnings" when asked.
like image 180
Yogesh Maheshwari Avatar answered Sep 22 '22 15:09

Yogesh Maheshwari