编程知识 购物 网址 新闻 笑话 | 软件 日历 阅读 图书馆 China
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
vbs/VBScript DOS/BAT hta htc python perl 游戏相关 VBA 远程脚本 ColdFusion ruby专题 autoit seraphzone PowerShell linux shell Lua Golang Erlang 其它教程 CSS/HTML/Xhtml html5 CSS XML/XSLT Dreamweaver教程 经验交流
站长资讯 .NET新手 ASP.NET C# WinForm Silverlight WCF CLR WPF XNA VisualStudio ASP.NET-MVC .NET控件开发 EntityFramework WinRT-Metro Java C++ PHP Delphi Python Ruby C语言 Erlang Go Swift Scala R语言 Verilog 其它语言 架构设计 面向对象 设计模式 领域驱动 Html-Css JavaScript jQuery HTML5 SharePoint GIS技术 SAP OracleERP DynamicsCRM K2 BPM 信息安全 企业信息 Android开发 iOS开发 WindowsPhone WindowsMobile 其他手机 敏捷开发 项目管理 软件工程 SQLServer Oracle MySQL NoSQL 其它数据库 Windows7 WindowsServer Linux
   -> iOS开发 -> iOS -> 正文阅读

[iOS开发]iOS

总结下几个常用到的获取手机权限,从iOS8以后,获取手机某种权限需要在info.plist文件中添加权限的描述文件

    <key>NSContactsUsageDescription</key>
    <string>App需要您的允许,才能访问通讯录</string>
    <key>NSBluetoothPeripheralUsageDescription</key>
    <string>App需要您的允许,才能访问蓝牙</string>
    <key>NSCalendarsUsageDescription</key>
    <string>App需要您的允许,才能访问日历</string>
    <key>NSCameraUsageDescription</key>
    <string>App需要您的允许,才能访问相机</string>
    <key>NSHealthUpdateUsageDescription</key>
    <string>App需要您的允许,才能访问健康更新 </string>
    <key>NSLocationAlwaysUsageDescription</key>
    <string></string>
    <key>NSLocationUsageDescription</key>
    <string>App需要您的允许,才能访问位置</string>
    <key>NSLocationWhenInUseUsageDescription</key>
    <string></string>
    <key>NSMicrophoneUsageDescription</key>
    <string>App需要您的允许,才能访问麦克风</string>
    <key>NSMotionUsageDescription</key>
    <string>App需要您的允许,才能访问运动与健身</string>
    <key>NSPhotoLibraryUsageDescription</key>
    <string>App需要您的允许,才能访问相册</string>
    <key>NSRemindersUsageDescription</key>
    <string>App需要您的允许,才能访问提醒事项</string>

1.通讯录
头文件

#import <AddressBook/AddressBook.h>

获取通讯录权限并请求授权

- (void)addressAuthorization{
    ABAuthorizationStatus authStatus = ABAddressBookGetAuthorizationStatus();
    if (authStatus == kABAuthorizationStatusNotDetermined) {
        // 请求授权
        ABAddressBookRef ressBookRef = ABAddressBookCreate();
        ABAddressBookRequestAccessWithCompletion(ressBookRef, ^(bool granted, CFErrorRef error) {
            if (granted) {
                NSLog(@"授权成功!");
            } else {
                NSLog(@"授权失败!");
            }
        });
    }
    else if(authStatus == kABAuthorizationStatusRestricted || authStatus == kABAuthorizationStatusDenied) {
        // 未授权
        
    }
    else{
        // 已授权
    }
}

2.相机
头文件

#import <AVFoundation/AVFoundation.h>
#import <AssetsLibrary/AssetsLibrary.h>

获取相机权限(直接跳相机,在跳到相机时,会提示是否允许访问相机)

- (void)cameraAuthorization{
    AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
    if (authStatus == ALAuthorizationStatusDenied||authStatus == ALAuthorizationStatusRestricted) {
        NSLog(@"未授权!");
        return ;
    }
}

3.相册
头文件

#import <AVFoundation/AVFoundation.h>
#import <AssetsLibrary/AssetsLibrary.h>

获取相册权限(直接跳相册,在跳到相册时,会提示是否允许访问相册)

- (void)photoAuthorization{
    //判断是否已授权
    ALAuthorizationStatus authStatus = [ALAssetsLibrary authorizationStatus];
    if (authStatus == ALAuthorizationStatusDenied) {
        NSLog(@"未授权!");
        return;
    }
}

4.日历
头文件

#import <EventKit/EventKit.h>

获取日历权限并请求授权

-(void)calendarAuthorization{
    EKAuthorizationStatus authStatus = [EKEventStore authorizationStatusForEntityType:EKEntityTypeEvent];
    if (EKAuthorizationStatusNotDetermined == authStatus) {
        EKEventStore *event = [[EKEventStore alloc] init];
        //授权成功,执行后续操作
        [event requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
            if (granted) {
                NSLog(@"授权成功!");
            } else {
                NSLog(@"授权失败!");
            }
        }];
    }
    else if(authStatus == EKAuthorizationStatusRestricted || authStatus == EKAuthorizationStatusDenied) {
        // 未授权
        
    }
    else{
        // 已授权
    }
}

5.麦克风
头文件
获取麦克风权限并请求授权

- (void)microphoneAuthorization{
    AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeAudio];
    if (authStatus == AVAuthorizationStatusNotDetermined) {// 未询问用户是否授权
        //第一次询问用户是否进行授权
        [[AVAudioSession sharedInstance] requestRecordPermission:^(BOOL granted) {
            if (granted) {
                 NSLog(@"授权成功!");
            }
            else {
                 NSLog(@"授权失败!");
            }
        }];
    }
    else if(authStatus == AVAuthorizationStatusRestricted || authStatus == AVAuthorizationStatusDenied) {
        // 未授权
       
    }
    else{
        // 已授权
    }
}

6.定位
头文件

#import <CoreLocation/CoreLocation.h>
#import <LocalAuthentication/LocalAuthentication.h>

获取定位权限(请求定位时,会提示是否允许访问位置)

- (void)locationAuthorization{
    CLAuthorizationStatus authStatus = [CLLocationManager  authorizationStatus];
    //第一次询问用户是否进行授权
    if (kCLAuthorizationStatusNotDetermined == authStatus) {
        //[[[CLLocationManager alloc] init] requestWhenInUseAuthorization];
        //开始定位用户的位置
        //[self.locMgr startUpdatingLocation];

    }
    else if(authStatus == kCLAuthorizationStatusRestricted || authStatus == kCLAuthorizationStatusDenied) {
        // 未授权
    }
    else{
        // 已授权
    }
    
}

  iOS开发 最新文章
Xamarin.IOS中MvvmCross的plugin使用方式
App分享之微信微博等各个社交平台的分享授权
iOS 图片本地存储、本地获取、本地删除
关于ipv6被拒的问题
iphone 微信浏览器上拽拽异常、失效问题(直
iOS
mac系统如何显示和隐藏文件
递归搜寻NSString中重复的文本
iOS实现Android中Gone的功能
iOS
上一篇文章      下一篇文章      查看所有文章
加:2017-11-14 23:30:51  更:2017-11-14 23:30:57 
 
360图书馆 软件开发资料 购物精选 新闻资讯 Chinese Culture 三丰软件 开发 中国文化 阅读网 日历 万年历 2019年10日历
2019-10-22 20:14:03
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  编程知识