1. 麦克风权限

单存检测是否有麦克风权限,并不会弹出是否允许弹出权限提示框

#import

/**

判断当前是有语音权限,但是不会弹出是否允许弹出权限

(需要在info中配置)Privacy - Microphone Usage Description 允许**访问您的语音,来用于**功能?

@return YES:有权限,NO:没权限

*/

- (BOOL)JX_Device_Permission_AudioAuth {

AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeAudio];

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

return NO;

}

return YES;

}复制代码

检测是否有权限,如果没有授权过,会弹出是否允许提示框

#import

/**

判断当前是有语音权限,会弹出是否允许弹出权限

(需要在info中配置)Privacy - Microphone Usage Description 允许**访问您的语音,来用于**功能?

*/

- (void)JX_Device_Permission_Check_AudioAuth {

AVAudioSession *session = [AVAudioSession sharedInstance];

if ([session respondsToSelector:@selector(requestRecordPermission:)]){

[session performSelector:@selector(requestRecordPermission:) withObject:^(BOOL granted) {

// do something

}];

}

}复制代码

2. 访问相册权限

检测是否有访问相册权限,并不会弹出是否允许访问相册权限提示框

#import

#import

/**

判断相册权限开关,但是不会弹出是否允许弹出权限

(需要在info中配置)Privacy - Photo Library Additions Usage Description 允许**访问您的相册,来用于**功能

@return YES:有权限,NO:没权限

*/

- (BOOL)JX_Device_Permission_PhotoLibraryAuth {

if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {

PHAuthorizationStatus authStatus = [PHPhotoLibrary authorizationStatus];

if(authStatus == PHAuthorizationStatusDenied || authStatus == PHAuthorizationStatusRestricted) {

return NO;

}

} else if ([[UIDevice currentDevice].systemVersion floatValue] >= 6.0 && [[UIDevice currentDevice].systemVersion floatValue] < 8.0) {

ALAuthorizationStatus authStatus = [ALAssetsLibrary authorizationStatus];

if(authStatus == ALAuthorizationStatusDenied || authStatus == ALAuthorizationStatusRestricted) {

return NO;

}

}

return YES;

}复制代码

检测是否有权限,如果没有授权过,会弹出是否允许提示框

#import

/**

判断相册权限开关,会弹出是否允许弹出权限

(需要在info中配置)Privacy - Photo Library Additions Usage Description 允许**访问您的相册,来用于**功能

*/

- (void)JX_Device_Permission_Check_PhotoLibraryAuth{

BOOL auth = [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary];

if (!auth) return;

[PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) { //弹出访问权限提示框

if (status == PHAuthorizationStatusAuthorized) { // 有权限

dispatch_async(dispatch_get_main_queue(),^{

// do something

// 一般操作

self.imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

[self presentViewController:self.imagePickerController animated:YES completion:nil];

});

} else {

dispatch_async(dispatch_get_main_queue(),^{ // 无权限

// do something

});

}

}];

}复制代码

3. 访问相机权限

检测是否有相机拍照权限,并不会弹出是否允许提示框

#import

/**

判断相机权限开关,但是不会弹出是否允许弹出权限

(需要在info中配置)Privacy - Camera Usage Description 允许**访问您的相机,来用于**功能

@return YES:有权限,NO:没权限

*/

- (BOOL)JX_Device_Permission_CameraAuth {

AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];

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

return NO;

}

return YES;

}复制代码

检测是否有过授权,如果没有授权过,会弹出是否允许提示框

#import

/**

判断相机权限开关,会弹出是否允许弹出权限

(需要在info中配置)Privacy - Camera Usage Description 允许**访问您的相机,来用于**功能

*/

- (void)JX_Device_Permission_Check_CameraAuth {

BOOL auth = [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera];

if (!auth) permission(NO);

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

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

dispatch_async(dispatch_get_main_queue(),^{

if (granted) { // 授权成功

// do something

// 一般会做的操作,跳转到系统的相机

self.imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;

[self presentViewController:self.imagePickerController animated:YES completion:nil];

} else { // 拒绝授权

// do something

}

});

}];

}复制代码

4. 推送权限(远程、本地)

检测是否有推送权限,并不会弹出是否允许提示框

/**

推送权限开关

@return YES:有权限,NO:没权限

*/

- (BOOL)JX_Device_Permission_NotificationAuth {

if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0f) {

UIUserNotificationSettings *setting = [[UIApplication sharedApplication] currentUserNotificationSettings];

if (UIUserNotificationTypeNone == setting.types) {

return NO;

}

} else {

UIRemoteNotificationType type = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];

if(UIRemoteNotificationTypeNone == type){

return NO;

}

}

return YES;

}复制代码

检测是否有过授权,如果没有授权过,会弹出是否允许提示框

说明:这里仅仅是检测是否授权过,弹出提示框操作。至于远程注册一些流程请参见另一篇博客。iOS 通知权限(远程通知、本地通知)

#ifdef NSFoundationVersionNumber_iOS_9_x_Max

#import

#endif

/**

判断通知权限开关,会弹出是否允许弹出权限(远程、本地)

*/

- (void)JX_Device_Permission_Check_NotificationAuth {

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

[[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert) completionHandler:^(BOOL granted, NSError * _Nullable error) {

dispatch_async(dispatch_get_main_queue(), ^{

// do something

// 对granted 进行判断,是否允许权限

});

}];

} else if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {

UIUserNotificationSettings *setting = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge categories:nil];

[[UIApplication sharedApplication] registerUserNotificationSettings:setting];

BOOL auth = [self JX_Device_Permission_NotificationAuth];

// 对auth 进行判断,是否允许权限

}

}复制代码

ios 权限提示语_iOS中各个权限功能提示弹框相关推荐

  1. ios 权限提示语_iOS工作室都在用按键v1.6.1(体验版)

    按键精灵iOS v1.6.1(体验版)已发布到cydia 新增工作室专场 还支持VIP自助换绑 欢迎下载使用~ 源地址:http://apt.mobileanjian.com VIP换绑方法如下: 1 ...

  2. android安全权限管理,Android 11 中的权限更新

    在 Android 11 中,用户能够针对位置信息.麦克风和摄像头指定更精细的权限.此外,如果以 Android 11 或更高版本为目标平台的应用在一段时间内未使用,系统就会重置这些应用的权限.如果应 ...

  3. linux登录超级权限管理,Linux操作系统中超级权限控制的应用(3)

    实例四: 比如我们想用beinan普通用户通过more /etc/shadow文件的内容时,可能会出现下面的情况: [beinan@localhost ~]$ more /etc/shadow /et ...

  4. linux中用户的权限是什么,linux中用户权限设置与更改相关介绍(上)

    不管是在生活中还是在工作中,我们都会经常碰到关于电脑权限方面的一些问题.现在介绍一下在linux系统中关于如何设置和管理用户的权限问题,介绍基本但很重要的命令. 在Linux中,权限分为三大类:基本权 ...

  5. linux文件权限umask,linux系统中UMASK权限的用法讲解

    原标题:linux系统中UMASK权限的用法讲解 umask一般是用在你初始创建一个目录或者文件的时候赋予他们的权限. 这里要说明两点: 1.针对目录来说x权限代表可以进入该目录,所以说对于这个权限初 ...

  6. 使用拦截器或者AOP实现权限管理(OA系统中实现权限控制)

    在开发类似与OA管理系统类型的项目中,经常需要设置到权限管理.例如对某个部门的人员CURD操作,默认是该部门的普通员工是不会有该权限的.但若某个员工升级为该部分的负责人.则此时它就拥有对该部门的CUR ...

  7. oracle怎么赋予系统权限,讲解Oracle系统中用户权限的赋予和查看

    在Oracle数据库系统中,用户权限分为两种(本文不涉及dba或oper的权限,只讲解普通用户的权限),分别是System Privilege系统权限和User Table Privilege用户数据 ...

  8. java log4j权限被否定_Dorado中其它权限实现方案-Dashboard-资料库.DOC

    Dorado中其它权限实现方案-Dashboard-资料库 dorado框架权限控制实现方案参考 第 PAGE 3页 共 NUMPAGES 66页 dorado框架权限控制实现方案参考 2007年9月 ...

  9. python PyQt5中文教程☞【第二节】PyQt5基本功能(创建窗口、应用程序图标、显示提示语、通过按钮关闭窗口、消息框(关闭窗口确认框)、窗口显示在屏幕中间【居中显示】)

    引用文章:http://code.py40.com/pyqt5/ 文章目录 简单的例子:创建一个小窗口 应用程序的图标 显示提示语 通过按钮关闭窗口 消息框(关闭窗口确认框) 窗口显示在屏幕的中间[居 ...

最新文章

  1. SQLServer · 最佳实践 · RDS for SQLServer 2012权限限制提升与改善
  2. 如何成为一个好的程序员...java应用架构师之后
  3. java bigdecimal语法_JAVA BigDecimal 小数点处理
  4. hdu 5617 Jam's maze(双线程dp)
  5. 使用 Linux 系统调用的内核命令
  6. delphi里用java_如何在整个Delphi应用程序中使用ID
  7. 《天涯明月刀》动作开发负责人:让美术hold住全场,推翻MMO的动作套路化设计
  8. oracle 查询spid,查看数据库session的sid来查杀对应系统进程号spid
  9. Java 堆内存模型
  10. vue.js实战——购物车练习(包含全选功能)
  11. C++11新特性,利用std::chrono精简传统获取系统时间的方法
  12. androidstudio新建项目中在布局文件中不显示title的方法
  13. Ribbon自带负载均衡策略比较
  14. python201811210作业4
  15. 网络通信 public ip 和 private ip
  16. PPT到WORD的组合图片复制
  17. 手机相机好坏测试软件,如何选择好的手机相机?一分钟教你看懂好与坏
  18. (二十三)八部众(2)
  19. 测试电池耗电快的软件,电池快速耗电急救软件
  20. 餐厅小票打印模板_智慧餐厅多商家入驻小程序开发,成功案例:万足外卖!

热门文章

  1. Linux安装Consolas字体
  2. Android 警告对话框(实现选择待播放音乐名应用)
  3. PTA习题 阶梯电价(C)
  4. 【UE4 第一人称射击游戏】38-拾取“M4A1”的提示信息
  5. 三菱FX3U与4台台达Ms300变频器通讯程序
  6. 360 php waf,cmseasy 最新版补丁绕过sql注入(绕过360waf)
  7. 几种常见的数据备份方案
  8. Java 8 stream的详细用法
  9. 使用超声波传感器测量距离并在LCD上显示
  10. python如何新建文件夹