0

My question is similar to "How can I prevent iOS apps from resetting after changing Camera permissions?". But I don't understand the answer very well .

I set the microphone permission by the code as follow:

-(BOOL)canRecord { __block BOOL bCanRecord = NO;
AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeAudio];

if (authStatus == AVAuthorizationStatusRestricted || authStatus ==AVAuthorizationStatusDenied)

{
    //prompt
    UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"setting permission" message:@"need microphone permission" preferredStyle:UIAlertControllerStyleAlert];

    UIAlertAction *settingAction = [UIAlertAction actionWithTitle:@"setting now" style:UIAlertActionStyleDefault handler:^(UIAlertAction * a){
        // jump to setting
        NSURL * url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
        if ([[UIApplication sharedApplication] canOpenURL:url]) {

            if ([[[UIDevice currentDevice]systemVersion]floatValue]>10.0) {

                [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];
            } else {
                [[UIApplication sharedApplication] openURL:url];
            } 
        }
    }];

    UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"later" style:UIAlertActionStyleDefault handler:nil];
    [alertController addAction:settingAction];
    [alertController addAction:okAction];

    [self presentViewController:alertController animated:YES completion:nil];

}else{

    if ([[[UIDevice currentDevice]systemVersion]floatValue] >= 7.0) {
        AVAudioSession *audioSession = [AVAudioSession sharedInstance];
        [audioSession performSelector:@selector(requestRecordPermission:) withObject:^(BOOL granted) {
            if (granted) {
                bCanRecord = YES;
            } else {
                bCanRecord = NO;
            }
        }];
        //        }
    }
    NSLog(@"bCanRecord %d",bCanRecord);

}

return bCanRecord;

}

then back to my app by clicking the return key in the status bar, my app will force a refresh and I will lose my place in the app.

I'm using an iPhone5 running IOS 9.3.3.

Cœur
  • 37,241
  • 25
  • 195
  • 267
Jin
  • 1
  • You cant. This is how iOS works atm. You just posted the question with the answer already. –  Aug 30 '17 at 12:51
  • Possible duplicate of [How can I prevent iOS apps from resetting after changing Camera permissions?](https://stackoverflow.com/questions/31706447/how-can-i-prevent-ios-apps-from-resetting-after-changing-camera-permissions) –  Aug 30 '17 at 12:51

0 Answers0