允许网站使用相机和麦克风_实用小技巧(十九):获取相机和麦克风权限

本文介绍了如何在iOS应用中使用AVFoundation框架检查并处理相机和麦克风的权限。通过AVCaptureDevice的authorizationStatusForMediaType方法判断权限状态,并显示相应提示。在info.plist文件中配置权限是解决权限问题的关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

版本记录

版本号

时间

V1.0

2017.07.21

前言

功能需求

判断照相机和麦克风的权限。

功能实现

下面我们就用#import 这个库,来获取照相机和麦克风的权限。

下面我们就直接看代码。

#import "JJAuthorityVC.h"

#import

@interface JJAuthorityVC ()

@end

@implementation JJAuthorityVC

#pragma mark - Override Private Function

- (void)viewDidLoad

{

[super viewDidLoad];

self.view.backgroundColor = [UIColor lightGrayColor];

}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

{

//判断照相机和,麦克风权限

NSString *mediaType = AVMediaTypeVideo;//读取媒体类型

AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:mediaType];//读取设备授权状态

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

NSString *errorStr = @"应用相机权限受限,请在设置中启用";

[self pushAlertWithMessage:errorStr];

return;

}

else {

[self pushAlertWithMessage:@"可以使用相机"];

}

mediaType = AVMediaTypeAudio;//读取媒体类型

authStatus = [AVCaptureDevice authorizationStatusForMediaType:mediaType];//读取设备授权状态

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

NSString *errorStr = @"麦克风权限受限,请在设置中启用";

[self pushAlertWithMessage:errorStr];

return;

}

else{

[self pushAlertWithMessage:@"可以使用麦克风"];

}

}

#pragma mark - Object Private Function

- (void)pushAlertWithMessage:(NSString *)message

{

UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@"提示" message:message preferredStyle:UIAlertControllerStyleAlert];

UIAlertAction *ensureAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {

return;

}];

[alertVC addAction:ensureAction];

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

}

@end

在运行代码后,会发现控制台打印如下消息。

2017-07-21 20:20:03.718718+0800 JJOC[4737:1350171] [MC] System group container for systemgroup.com.apple.configurationprofiles path is /private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles

2017-07-21 20:20:03.720009+0800 JJOC[4737:1350171] [MC] Reading from public effective user settings.

找到原因,其实是info.plist中需要配置一下权限问题,如下图所示。

这里配置的就是相机和麦克风的权限。

配置权限

细看会发现,这里面有很多有关权限方面的配置,更体现了苹果对应安全性的重视。

配置权限

功能效果

下面看一下功能效果。

功能效果

这里的功能效果,是已经默认有了权限,提示可以使用相机,在具体工程中,如果在设置中关闭了这两个权限,就会提示应用相机权限受限,请在设置中启用和麦克风权限受限,请在设置中启用。

后记

未完,待续~~~~

夜景

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值