iOS10適配 完美解決相機、相簿等許可權的使用
解決相機相簿呼叫奔潰:
崩潰:[access] This app has crashed because it attempted to access
privacy-sensitive data without a usage description. The app’s
Info.plist must contain an NSPhotoLibraryUsageDescription key with a
string value explaining to the user how the app uses this data.
ios 10 中許可權適配
升級到iOS10之後,需要設定許可權的有:
<!-- 相簿 -->
<key>NSPhotoLibraryUsageDescription</key>
<string>App需要您的同意,才能訪問相簿</string>
<!-- 相機 -->
<key>NSCameraUsageDescription</key>
<string>App需要您的同意,才能訪問相機</string>
<!-- 麥克風 -->
<key>NSMicrophoneUsageDescription</key>
<string>App需要您的同意,才能訪問麥克風</string>
<!-- 位置 -->
<key>NSLocationUsageDescription</key>
<string>App需要您的同意,才能訪問位置</string>
<!-- 在使用期間訪問位置 -->
<key>NSLocationWhenInUseUsageDescription</key>
<string>App需要您的同意,才能在使用期間訪問位置</string>
<!-- 始終訪問位置 -->
<key>NSLocationAlwaysUsageDescription</key>
<string>App需要您的同意,才能始終訪問位置</string>
<!-- 日曆 -->
<key>NSCalendarsUsageDescription</key>
<string>App需要您的同意,才能訪問日曆</string>
<!-- 提醒事項 -->
<key>NSRemindersUsageDescription</key>
<string>App需要您的同意,才能訪問提醒事項</string>
<!-- 運動與健身 -->
<key>NSMotionUsageDescription</key> <string>App需要您的同意,才能訪問運動與健身</string>
<!-- 健康更新 -->
<key>NSHealthUpdateUsageDescription</key>
<string>App需要您的同意,才能訪問健康更新 </string>
<!-- 健康分享 -->
<key>NSHealthShareUsageDescription</key>
<string>App需要您的同意,才能訪問健康分享</string>
<!-- 藍芽 -->
<key>NSBluetoothPeripheralUsageDescription</key>
<string>App需要您的同意,才能訪問藍芽</string>
<!-- 媒體資料庫 -->
<key>NSAppleMusicUsageDescription</key>
<string>App需要您的同意,才能訪問媒體資料庫</string>
info.plist中根據自己的需求複製新增
在使用時 .m 中新增
//相機
#import <AVFoundation/AVCaptureDevice.h>
#import <AVFoundation/AVMediaFormat.h>
//相簿
#import <AssetsLibrary/AssetsLibrary.h>
程式碼示例:
switch (buttonIndex) {
case 1:
{
//相機許可權
AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];
if (authStatus ==AVAuthorizationStatusRestricted ||//此應用程式沒有被授權訪問的照片資料。
authStatus ==AVAuthorizationStatusDenied) //使用者已經明確否認了這一照片資料的應用程式訪問
{
// 無許可權 引導去開啟
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
if ([[UIApplication sharedApplication]canOpenURL:url]) {
[[UIApplication sharedApplication]openURL:url];
}
}else{
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
[self loadImage:UIImagePickerControllerSourceTypeCamera];
}
else
{
NSLog(@"手機不支援相機");
}
}
}
break;
case 2:
{
//相簿許可權
ALAuthorizationStatus author = [ALAssetsLibrary authorizationStatus];
if (author ==ALAuthorizationStatusRestricted || author ==ALAuthorizationStatusDenied){
//無許可權 引導去開啟
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}
}else{
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
[self loadImage:UIImagePickerControllerSourceTypePhotoLibrary];
}
else
{
NSLog(@"手機不支援相簿");
}
}
}
break;
default:
break;
}
相關文章
- Android呼叫相簿、相機(相容6.0、7.0、8.0)所需新增的許可權Android
- 這也許是Android一句話許可權適配的更優解決方案Android
- Android6.0許可權的動態適配Android
- Android開發在Activity外申請許可權呼叫相機開啟相簿Android
- 「Android6.0許可權適配| 掘金技術徵文 」Android
- 通過瀏覽器獲取麥克風或相機等媒體的使用許可權瀏覽器
- pg許可權相關
- 採坑之Android手機訪問相簿許可權問題Android
- django開發之許可權管理(一)——許可權管理詳解(許可權管理原理以及方案)、不使用許可權框架的原始授權方式詳解Django框架
- APP許可權相關的東西APP
- vue許可權問題解決方案Vue
- 記一個 Android 14 適配引發的Android 儲存許可權問題Android
- Linux使用者/使用者組/許可權相關命令Linux
- Android部分手機“後臺彈出介面許可權”解決方案Android
- MySQL 許可權詳解MySql
- Linux中的許可權機制Linux
- artisan日誌 root 許可權解決辦法
- 解決samba只讀,但無修改許可權的配置Samba
- 許可權之選單許可權
- 完美解決ios10及以上Safari無法禁止縮放的問題iOS
- linux 檔案許可權 s 許可權和 t 許可權解析Linux
- Spring security(五)-完美許可權管理系統(授權過程分析)Spring
- Spring Security 許可權管理的投票器與表決機制Spring
- 動態許可權相關的幾個庫分析
- Android SELinux avc dennied許可權問題解決方法AndroidLinux
- 如何用 Vue 實現前端許可權控制(路由許可權 + 檢視許可權 + 請求許可權)Vue前端路由
- PermissionError: [Errno 13] Permission denied:的許可權該怎麼解決。。。Error
- android 6.0許可權機制的簡單封裝(支援批量申請許可權)Android封裝
- 【詳解】GrantedAuthority(已授予的許可權)
- linux使用者許可權Linux
- Linux賬號和許可權管理(理論配寫)Linux
- 企業內部CATIA許可調配的難點與解決方案
- Linux的檔案存取許可權和0644許可權Linux
- 使用者和組的許可權
- 【轉】BeyondCompare3提示許可金鑰過期完美解決方法
- 許可權系統:一文搞懂功能許可權、資料許可權
- PostgreSQL物件許可權如何在後設資料中獲取-許可權解讀、定製化匯出許可權SQL物件
- 【自然框架】許可權的視訊演示(二):許可權到欄位、許可權到記錄框架
- win10許可權不能打勾怎麼辦 win10管理員許可權不能打勾解決方法Win10