ios 权限提示语_iOS中各个权限功能提示弹框
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中各个权限功能提示弹框相关推荐
- ios 权限提示语_iOS工作室都在用按键v1.6.1(体验版)
按键精灵iOS v1.6.1(体验版)已发布到cydia 新增工作室专场 还支持VIP自助换绑 欢迎下载使用~ 源地址:http://apt.mobileanjian.com VIP换绑方法如下: 1 ...
- android安全权限管理,Android 11 中的权限更新
在 Android 11 中,用户能够针对位置信息.麦克风和摄像头指定更精细的权限.此外,如果以 Android 11 或更高版本为目标平台的应用在一段时间内未使用,系统就会重置这些应用的权限.如果应 ...
- linux登录超级权限管理,Linux操作系统中超级权限控制的应用(3)
实例四: 比如我们想用beinan普通用户通过more /etc/shadow文件的内容时,可能会出现下面的情况: [beinan@localhost ~]$ more /etc/shadow /et ...
- linux中用户的权限是什么,linux中用户权限设置与更改相关介绍(上)
不管是在生活中还是在工作中,我们都会经常碰到关于电脑权限方面的一些问题.现在介绍一下在linux系统中关于如何设置和管理用户的权限问题,介绍基本但很重要的命令. 在Linux中,权限分为三大类:基本权 ...
- linux文件权限umask,linux系统中UMASK权限的用法讲解
原标题:linux系统中UMASK权限的用法讲解 umask一般是用在你初始创建一个目录或者文件的时候赋予他们的权限. 这里要说明两点: 1.针对目录来说x权限代表可以进入该目录,所以说对于这个权限初 ...
- 使用拦截器或者AOP实现权限管理(OA系统中实现权限控制)
在开发类似与OA管理系统类型的项目中,经常需要设置到权限管理.例如对某个部门的人员CURD操作,默认是该部门的普通员工是不会有该权限的.但若某个员工升级为该部分的负责人.则此时它就拥有对该部门的CUR ...
- oracle怎么赋予系统权限,讲解Oracle系统中用户权限的赋予和查看
在Oracle数据库系统中,用户权限分为两种(本文不涉及dba或oper的权限,只讲解普通用户的权限),分别是System Privilege系统权限和User Table Privilege用户数据 ...
- java log4j权限被否定_Dorado中其它权限实现方案-Dashboard-资料库.DOC
Dorado中其它权限实现方案-Dashboard-资料库 dorado框架权限控制实现方案参考 第 PAGE 3页 共 NUMPAGES 66页 dorado框架权限控制实现方案参考 2007年9月 ...
- python PyQt5中文教程☞【第二节】PyQt5基本功能(创建窗口、应用程序图标、显示提示语、通过按钮关闭窗口、消息框(关闭窗口确认框)、窗口显示在屏幕中间【居中显示】)
引用文章:http://code.py40.com/pyqt5/ 文章目录 简单的例子:创建一个小窗口 应用程序的图标 显示提示语 通过按钮关闭窗口 消息框(关闭窗口确认框) 窗口显示在屏幕的中间[居 ...
最新文章
- SQLServer · 最佳实践 · RDS for SQLServer 2012权限限制提升与改善
- 如何成为一个好的程序员...java应用架构师之后
- java bigdecimal语法_JAVA BigDecimal 小数点处理
- hdu 5617 Jam's maze(双线程dp)
- 使用 Linux 系统调用的内核命令
- delphi里用java_如何在整个Delphi应用程序中使用ID
- 《天涯明月刀》动作开发负责人:让美术hold住全场,推翻MMO的动作套路化设计
- oracle 查询spid,查看数据库session的sid来查杀对应系统进程号spid
- Java 堆内存模型
- vue.js实战——购物车练习(包含全选功能)
- C++11新特性,利用std::chrono精简传统获取系统时间的方法
- androidstudio新建项目中在布局文件中不显示title的方法
- Ribbon自带负载均衡策略比较
- python201811210作业4
- 网络通信 public ip 和 private ip
- PPT到WORD的组合图片复制
- 手机相机好坏测试软件,如何选择好的手机相机?一分钟教你看懂好与坏
- (二十三)八部众(2)
- 测试电池耗电快的软件,电池快速耗电急救软件
- 餐厅小票打印模板_智慧餐厅多商家入驻小程序开发,成功案例:万足外卖!