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許可權適配Android
- Android呼叫相簿、相機(相容6.0、7.0、8.0)所需新增的許可權Android
- 適配懸浮窗許可權與系統設定修改許可權
- 這也許是Android一句話許可權適配的更優解決方案Android
- Android許可權管理之RxPermission解決Android 6.0 適配問題Android
- Android6.0許可權的動態適配Android
- Android 懸浮窗許可權各機型各系統適配大全Android
- Android開發在Activity外申請許可權呼叫相機開啟相簿Android
- 「Android6.0許可權適配| 掘金技術徵文 」Android
- Android6.0許可權適配及相容庫的實現Android
- 安卓元件化應用的6.0許可權適配優化方案安卓元件化優化
- 通過瀏覽器獲取麥克風或相機等媒體的使用許可權瀏覽器
- iOS10 再談 CAAnimationDelegate 相關協議的適配iOS協議
- iOS10 許可權崩潰問題iOS
- Android許可權管理之Permission許可權機制及使用Android
- django開發之許可權管理(一)——許可權管理詳解(許可權管理原理以及方案)、不使用許可權框架的原始授權方式詳解Django框架
- 採坑之Android手機訪問相簿許可權問題Android
- 相機相簿OC 詳解
- iOS10推送通知適配iOS
- APP許可權相關的東西APP
- vue許可權問題解決方案Vue
- unlimited tablespace許可權和quota 配額MIT
- iOS10 CAAnimationDelegate 的簡單適配iOS
- iOS10國行網路許可權問題iOS
- Oracle的物件許可權、角色許可權、系統許可權Oracle物件
- Oracle許可權相關查詢Oracle
- oracle許可權相關檢視Oracle
- [iOS]適配iOS10問題iOS
- 使用者許可權繼承另一使用者的許可權繼承
- ubuntu下解決wireshark許可權問題Ubuntu
- Oracle 使用者、物件許可權、系統許可權Oracle物件
- DB2 public許可權相關DB2
- 記一個 Android 14 適配引發的Android 儲存許可權問題Android
- 詳解Oracle使用者許可權檢視的使用Oracle
- 【許可權管理】Oracle中檢視、回收使用者許可權Oracle
- AIX 的許可許可權(轉)AI
- artisan日誌 root 許可權解決辦法
- iOS10推送適配完整說明iOS