iOS 隱私授權(quán)權(quán)限匯總

一、權(quán)限匯總

隱私權(quán)限 版本 Infor.plist字段
定位服務(wù) * Privacy - Location Always Usage DescriptionPrivacy - Location When In Use Usage Description沈善、Privacy - Location Always and When In Use Usage Description
通訊錄 * Privacy - Contacts Usage Description
日歷 * Privacy - Calendars Usage Description
提醒事項(xiàng) * Privacy - Reminders Usage Description
相冊(cè)(讀權(quán)限) * Privacy - Photo Library Usage Description
相冊(cè)(寫權(quán)限) * Privacy - Photo Library Additions Usage Description
藍(lán)牙 * Privacy - Bluetooth Peripheral Usage Description
麥克風(fēng) * Privacy - Microphone Usage Description
相機(jī) * Privacy - Camera Usage Description
本地網(wǎng)絡(luò) iOS14~ Privacy - Local Network Usage Description
面容/指紋 * Privacy - Face ID Usage Description
運(yùn)動(dòng)與健身 * Privacy - Motion Usage Description
語音識(shí)別(Siri) iOS10~ Privacy - Siri Usage Description
健康 iOS8 ~ Privacy - Health Share Usage Description 迹鹅、Privacy - Health Update Usage Description
Home kit iOS8 ~ Privacy - HomeKit Usage Description
媒體與Apple Music iOS 9 ~ Privacy - Media Library Usage Description

三、權(quán)限設(shè)置相關(guān)代碼匯總

  1. 定位服務(wù)
  • 獲取狀態(tài)
 BOOL enable = [CLLocationManager locationServicesEnabled];//是否可用
 NSInteger state = [CLLocationManager authorizationStatus];//授權(quán)狀態(tài)
  • 申請(qǐng)權(quán)限
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
[self.locationManager requestAlwaysAuthorization];
[self.locationManager requestWhenInUseAuthorization];
  1. 通訊錄
  • 獲取狀態(tài)
 CNAuthorizationStatus status = [CNContactStore authorizationStatusForEntityType:CNEntityTypeContacts];
  • 申請(qǐng)權(quán)限
 CNContactStore *contactStore = [[CNContactStore alloc] init];
 [contactStore requestAccessForEntityType:CNEntityTypeContacts completionHandler:^(BOOL granted, NSError * _Nullable error) {}];
  1. 日歷
  • 獲取狀態(tài)
 EKAuthorizationStatus status = [EKEventStore authorizationStatusForEntityType:EKEntityTypeEvent];
  • 申請(qǐng)權(quán)限
 EKEventStore *store = [[EKEventStore alloc] init];
 [store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError * _Nullable error) {}];
  1. 提醒事項(xiàng)
  • 獲取狀態(tài)
 EKAuthorizationStatus status = [EKEventStore authorizationStatusForEntityType:EKEntityTypeReminder];
  • 申請(qǐng)權(quán)限
 EKEventStore *store = [[EKEventStore alloc] init];
 [store requestAccessToEntityType:EKEntityTypeReminder completion:^(BOOL granted, NSError * _Nullable error) {
 }];
  1. 照片
  • 獲取狀態(tài)
 if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {    
     if (_isiOS8_Or_Later_) {
         PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus];
     } else {
         // iOS7 - iOS8
         ALAuthorizationStatus status = [ALAssetsLibrary authorizationStatus];
     }
 } else {
     NSLog(@"相冊(cè)不可用替蛉!");
 }
  • 申請(qǐng)權(quán)限
 if (_isiOS8_Or_Later_) {
     [PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) {
     }];
 } else {
     ALAssetsLibrary *assetLibrary = [[ALAssetsLibrary alloc] init];
     [assetLibrary enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
     } failureBlock:^(NSError *error) {
}];
 }
  1. 藍(lán)牙
  • 獲取狀態(tài)
 self.cbCentralManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];
 #pragma mark - CBCentralManagerDelegate
 - (void)centralManagerDidUpdateState:(CBCentralManager *)central{
     CBManagerState state = central.state;
    }
 }
  • 申請(qǐng)權(quán)限
  1. 麥克風(fēng)
  • 獲取狀態(tài)
 AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeAudio];
  • 申請(qǐng)權(quán)限
 [[AVAudioSession sharedInstance] requestRecordPermission:^(BOOL granted) {}];
  1. 相機(jī)
  • 獲取狀態(tài)
 if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
     AVAuthorizationStatus status = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
 }
  • 申請(qǐng)權(quán)限
 [AVCaptureDevice requestAccessForMediaType:AVMediaTypeVideo completionHandler:^(BOOL granted) {
 }];
  1. 運(yùn)動(dòng)與健身
  • 獲取狀態(tài)
 if( [CMMotionActivityManager isActivityAvailable]){
     CMAuthorizationStatus status = [CMMotionActivityManager authorizationStatus];
 }
  • 申請(qǐng)權(quán)限
 self.cmManager = [[CMMotionActivityManager alloc] init];
 self.motionActivityQueue = [[NSOperationQueue alloc] init];
 [self.cmManager startActivityUpdatesToQueue:self.motionActivityQueue withHandler:^(CMMotionActivity *activity) {}];
  1. 語音識(shí)別
  • 獲取狀態(tài)
 SFSpeechRecognizerAuthorizationStatus status = [SFSpeechRecognizer authorizationStatus];
  • 申請(qǐng)權(quán)限
 [SFSpeechRecognizer requestAuthorization:^(SFSpeechRecognizerAuthorizationStatus status) {
 }];
  1. 健康
  • 獲取狀態(tài)
 if ([HKHealthStore isHealthDataAvailable]) {
     self.healthStore = [[HKHealthStore alloc] init];
     // 以心率 HKQuantityTypeIdentifierHeartRate 為例子
     HKQuantityType *heartRateType = [HKQuantityType quantityTypeForIdentifier:HKQuantityTypeIdentifierHeartRate];
     HKAuthorizationStatus status = [self.healthStore authorizationStatusForType:heartRateType];
 }else{
     NSLog(@"unavailable");
     // Health data is not avaliable on all device.
 }
  • 申請(qǐng)權(quán)限
 [self.healthStore requestAuthorizationToShareTypes:typeSet readTypes:typeSet completion:^(BOOL success, NSError * _Nullable error) {}];
  1. Home Kit
  • 獲取狀態(tài)
 self.homeManager = [[HMHomeManager alloc] init];
 self.homeManager.delegate = self;

 - (void)homeManagerDidUpdateHomes:(HMHomeManager *)manager{
     if (manager.homes.count > 0) {}
 }
  • 申請(qǐng)權(quán)限
 [manager addHomeWithName:@"Test Home" completionHandler:^(HMHome * _Nullable home, NSError * _Nullable error) {}];
  1. 媒體與Apple Music
  • 獲取狀態(tài)
 SKCloudServiceAuthorizationStatus status = [SKCloudServiceController authorizationStatus];
  • 申請(qǐng)權(quán)限
 [SKCloudServiceController requestAuthorization:^(SKCloudServiceAuthorizationStatus status) {}];
  1. 面容、指紋
  • 權(quán)限申請(qǐng)
YZAuthID *authID = [[YZAuthID alloc] init];
[authID yz_showAuthIDWithDescribe:nil block:^(YZAuthIDState state, NSError *error) {  
    if (state == YZAuthIDStateNotSupport) { // 不支持TouchID/FaceID
        NSLog(@"對(duì)不起拄氯,當(dāng)前設(shè)備不支持指紋/面容ID");
    } else if(state == YZAuthIDStateFail) { // 認(rèn)證失敗
        NSLog(@"指紋/面容ID不正確躲查,認(rèn)證失敗");
    } else if(state == YZAuthIDStateTouchIDLockout) {   // 多次錯(cuò)誤,已被鎖定
        NSLog(@"多次錯(cuò)誤译柏,指紋/面容ID已被鎖定镣煮,請(qǐng)到手機(jī)解鎖界面輸入密碼");
    } else if (state == YZAuthIDStateSuccess) { // TouchID/FaceID驗(yàn)證成功
        NSLog(@"認(rèn)證成功!");
    }  
}];
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末艇纺,一起剝皮案震驚了整個(gè)濱河市怎静,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌黔衡,老刑警劉巖蚓聘,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異盟劫,居然都是意外死亡夜牡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來塘装,“玉大人急迂,你說我怎么就攤上這事”碾龋” “怎么了僚碎?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長阴幌。 經(jīng)常有香客問我勺阐,道長,這世上最難降的妖魔是什么矛双? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任渊抽,我火速辦了婚禮,結(jié)果婚禮上议忽,老公的妹妹穿的比我還像新娘懒闷。我一直安慰自己,他們只是感情好栈幸,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布愤估。 她就那樣靜靜地躺著,像睡著了一般速址。 火紅的嫁衣襯著肌膚如雪灵疮。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天壳繁,我揣著相機(jī)與錄音,去河邊找鬼荔棉。 笑死闹炉,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的润樱。 我是一名探鬼主播渣触,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼壹若!你這毒婦竟也來了嗅钻?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤店展,失蹤者是張志新(化名)和其女友劉穎养篓,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赂蕴,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡柳弄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了概说。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片碧注。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡嚣伐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出萍丐,到底是詐尸還是另有隱情轩端,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布逝变,位于F島的核電站基茵,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏骨田。R本人自食惡果不足惜耿导,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望态贤。 院中可真熱鬧舱呻,春花似錦、人聲如沸悠汽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽柿冲。三九已至茬高,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間假抄,已是汗流浹背怎栽。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留宿饱,地道東北人熏瞄。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像谬以,于是被迫代替她去往敵國和親强饮。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容