ios 判断打开相机权限_iOS系统权限检测(定位、相机、相册、麦克风、通知)...

本文介绍了在iOS应用中如何检测和处理相机、相册、麦克风、通知及定位权限。通过设置info.plist中的权限描述,然后检测用户授权状态,针对不同状态采取相应措施,如用户未授权或拒绝授权时引导用户开启权限。同时,提供了跳转到系统设置页面的代码实现。
摘要由CSDN通过智能技术生成

2018.01.18更新

近日遇到通过xcode的upload to AppStrore 上传成功后,在iTunes的MyApps中找不到构建的版本~,后面通过查询资料才知道。是因为申请对应权限时没有在value中填写对应内容引起的~~markmarkmark。蠢哭了

原文

由于苹果对于获取用户隐私权限的严格控制,在获取用户相机/相册/位置/通知等权限时,必须由用户手动授权之后方可获取。故事,就是在这样的场景下开始的...

一、权限设置

Q:获取对应权限需要做些什么?

A:需要在info.plist中预设对应权限key值,如下Privacy - Camera Usage Description -> 相机

Privacy - Microphone Usage Description -> 麦克风

Privacy - Photo Library Usage Description -> 读取相册

Privacy - Photo Library Additions Usage Description -> 保存图片至相册

Privacy - NSLocationAlwaysUsageDescription -> 始终获取地理位置

Privacy - NSLocationWhenInUseUsageDescription -> 使用时获取地理位置

PS:位置授权二选一即可

在使用对应功能如调起相册时系统会弹框要求用户授权。

二、授权状态检测

Q:如果用户没有同意授权或拒绝授权,如何保证在使用相关功能时提示用户开启权限?

A:需要检测对应权限状态,

如果用户未授权---->提示用户授权(系统行为)

如果用户之前拒绝授权---->提示用户开启授权(App实现)

如下

检测麦克风权限+(BOOL)detectionMediaState:(void(^)())authorizedBlock

{

BOOL isAvalible = NO;

NSString *mediaType = AVMediaTypeAudio;

AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:mediaType];

//用户尚未授权->申请权限

if (authStatus == AVAuthorizationStatusNotDetermined)

{

[AVCaptureDevice requestAccessForMediaType:mediaType completionHandler:^(BOOL granted) {

if(granted)

{

if (authorizedBlock)

{

authorizedBlock();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值