@@ -13,24 +13,32 @@ + (NSString * _Nonnull)handlerUniqueId {
13
13
}
14
14
15
15
- (RNPermissionStatus)currentStatus {
16
- switch ([AVCaptureDevice authorizationStatusForMediaType: AVMediaTypeVideo]) {
17
- case AVAuthorizationStatusNotDetermined:
18
- return RNPermissionStatusNotDetermined;
19
- case AVAuthorizationStatusRestricted:
20
- return RNPermissionStatusRestricted;
21
- case AVAuthorizationStatusDenied:
22
- return RNPermissionStatusDenied;
23
- case AVAuthorizationStatusAuthorized:
24
- return RNPermissionStatusAuthorized;
16
+ if (@available (iOS 7.0 , tvOS 17.0 , *)) {
17
+ switch ([AVCaptureDevice authorizationStatusForMediaType: AVMediaTypeVideo]) {
18
+ case AVAuthorizationStatusNotDetermined:
19
+ return RNPermissionStatusNotDetermined;
20
+ case AVAuthorizationStatusRestricted:
21
+ return RNPermissionStatusRestricted;
22
+ case AVAuthorizationStatusDenied:
23
+ return RNPermissionStatusDenied;
24
+ case AVAuthorizationStatusAuthorized:
25
+ return RNPermissionStatusAuthorized;
26
+ }
27
+ } else {
28
+ return RNPermissionStatusNotAvailable;
25
29
}
26
30
}
27
31
28
32
- (void )requestWithResolver : (void (^ _Nonnull)(RNPermissionStatus))resolve
29
33
rejecter : (void (^ _Nonnull)(NSError * _Nonnull))reject {
30
- [AVCaptureDevice requestAccessForMediaType: AVMediaTypeVideo
31
- completionHandler: ^(__unused BOOL granted) {
34
+ if (@available (iOS 7.0 , tvOS 17.0 , *)) {
35
+ [AVCaptureDevice requestAccessForMediaType: AVMediaTypeVideo
36
+ completionHandler: ^(__unused BOOL granted) {
37
+ resolve ([self currentStatus ]);
38
+ }];
39
+ } else {
32
40
resolve ([self currentStatus ]);
33
- }];
41
+ }
34
42
}
35
43
36
44
@end
0 commit comments