@@ -14,21 +14,38 @@ + (NSString * _Nonnull)handlerUniqueId {
1414
1515- (void )checkWithResolver : (void (^ _Nonnull)(RNPermissionStatus))resolve
1616 rejecter : (void (__unused ^ _Nonnull)(NSError * _Nonnull))reject {
17- switch ([[AVAudioSession sharedInstance ] recordPermission ]) {
18- case AVAudioSessionRecordPermissionUndetermined:
19- return resolve (RNPermissionStatusNotDetermined);
20- case AVAudioSessionRecordPermissionDenied:
21- return resolve (RNPermissionStatusDenied);
22- case AVAudioSessionRecordPermissionGranted:
23- return resolve (RNPermissionStatusAuthorized);
17+ if (@available (iOS 17.0 , *)) {
18+ switch ([[AVAudioApplication sharedInstance ] recordPermission ]) {
19+ case AVAudioApplicationRecordPermissionUndetermined:
20+ return resolve (RNPermissionStatusNotDetermined);
21+ case AVAudioApplicationRecordPermissionDenied:
22+ return resolve (RNPermissionStatusDenied);
23+ case AVAudioApplicationRecordPermissionGranted:
24+ return resolve (RNPermissionStatusAuthorized);
25+ }
26+ } else {
27+ switch ([[AVAudioSession sharedInstance ] recordPermission ]) {
28+ case AVAudioSessionRecordPermissionUndetermined:
29+ return resolve (RNPermissionStatusNotDetermined);
30+ case AVAudioSessionRecordPermissionDenied:
31+ return resolve (RNPermissionStatusDenied);
32+ case AVAudioSessionRecordPermissionGranted:
33+ return resolve (RNPermissionStatusAuthorized);
34+ }
2435 }
2536}
2637
2738- (void )requestWithResolver : (void (^ _Nonnull)(RNPermissionStatus))resolve
2839 rejecter : (void (^ _Nonnull)(NSError * _Nonnull))reject {
29- [[AVAudioSession sharedInstance ] requestRecordPermission: ^(__unused BOOL granted) {
30- [self checkWithResolver: resolve rejecter: reject];
31- }];
40+ if (@available (iOS 17.0 , *)) {
41+ [AVAudioApplication requestRecordPermissionWithCompletionHandler: ^(__unused BOOL granted) {
42+ [self checkWithResolver: resolve rejecter: reject];
43+ }];
44+ } else {
45+ [[AVAudioSession sharedInstance ] requestRecordPermission: ^(__unused BOOL granted) {
46+ [self checkWithResolver: resolve rejecter: reject];
47+ }];
48+ }
3249}
3350
3451@end
0 commit comments